首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

node.js 标准错误输出 和 process.exit

node.js中,各种模块有一种标准的写法: this....,其实err是一个对象,而stdout和stderr是字符串,stdout就是执行的子进程中使用标准输出的信息,而stderr就是子进程中错误输出流的内容。...那么问题来了,如果我们自己用node.js写一个简单脚本,让其他node程序去调用,怎么模仿实现一样的返回情况呢?...奇了怪了,console.error不就是错误输出吗?好吧,这只能怪自己写web写多了,然后node.js并不是这样的。 接下来就要介绍三个玩意,分别对应stdout、stderr和err。...process.exit(0)表示成功完成,回调函数中,err将为null; process.exit(非0)表示执行失败,回调函数中,err不为null,err.code就是我们传给exit的数字。

2.3K30

把 Node.js 中的回调转换为 Promise

如果不指定得到的输出是 Buffer。 另外传给这个函数的回调应接受 Error,因为它是第一个参数。之后可以有任意数量的输出。...如果你的回调不遵循这个特定标准也不用担心。util.promisify() 函数可让你自定义转换是如何发生的。 注意:Promise 在被引入后不久就开始流行了。...现在你已经了解了如何将 Node.js 标准样式回调隐含到 Promise 中。从 Node.js 8 开始,这个模块仅在 Node.js 上可用。...如果回调函数返回错误,就拒绝带有该错误的Promise。如果回调函数返回非错误输出,就解决并输出 Promise。...要 reject Promise 而不是返回错误。所以代码中没有立即把数据输出,而是先 resolve 了Promise。然后像以前一样使用基于 Promise 的 readFile() 函数。

2.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    2024即将结束,看看这10个你可能错过的JavaScript怪异现象

    void 运算符的作用是“评估一个表达式,但不返回其值”。换句话说,它执行了 console.log("欢迎回来") 这个操作,让它正常输出,但却不会返回任何值。...4. null 是个对象,它偏偏不喜欢你 在 JavaScript 中,有一个总是让人抓狂的存在——null。它看起来不像对象,但偏偏系统把它当成了对象。...其实,早期 JavaScript 的类型系统并不完美,null 被错误地标记为对象。这种错误一直没有修复,因为如果修改了这一点,整个互联网的许多现有代码都会因为这个不兼容的变化而崩溃。...这是一个新出现的全局对象,它能在任何环境中都能访问到,无论是浏览器、Node.js,还是其他 JavaScript 执行环境,globalThis 都是全局对象的标准代表。...它们是基于 IEEE 754 标准的浮动小数点数。这个标准虽然很强大,但也导致了一些非常搞笑甚至“不可思议”的数学错误。

    7310

    Node中的流

    但stream不一次性访问全部数据,而是一部分一部分发送/接收(chunk式的),所以不必占用那么大块内存,尤其适用于处理大量(外部)数据的场景 stream具有管道(pipeline)特性,例如: const...处理完毕后调用的通知函数,表明写入成功与否(失败的话,传Error对象进去),类似于尾触发机制中的next() 或者更简单的echo实现: process.stdin.pipe(process.stdout); 直接把标准输入流连接到标准输出流...上例中把所有数据都读进来,然后才交给标准输出,实际上有更高效的方式(按需推数据给使用者): const { Readable } = require('stream'); const inStream...,A-Z会作为数据源传递给标准输出(打印出来),同时标准输入流被接到inoutStream,来自标准输入的所有数据会被log出来,效果如下: ABCDEFGHIJKLMNOPQRSTUVWXYZcc oo...探究 Node.js 中的 drain 事件 深入理解 Node.js Stream 内部机制 Backpressuring in Streams

    2.3K10

    JavaScript 编程精解 中文第三版 二十、Node.js

    你也可以在那里找到 Node.js 的更多文档。 背景 编写通过网络通信的系统时,一个更困难的问题是管理输入输出,即向/从网络和硬盘读写数据。...但在 Node 中,该方法不会将文本显示在浏览器的 JavaScript 控制台中,而显示在标准输出流中。从命令行运行node时,这意味着你会在终端中看到记录的值。...从 v10 开始,标准库中有一个名为fs/promises的包,它导出的函数与fs大部分相同,但使用Promise而不是回调。...当路径不起始于基本目录时,该函数将使用 HTTP 状态码来抛出错误响应对象,该状态码表明禁止访问资源。 我们需要创建GET方法,在读取目录时返回文件列表,在读取普通文件时返回文件内容。...当pipe完成时,它会关闭输出流,从而导致触发'finish'事件。 这是我们可以成功解析Promise的地方(不返回任何内容)。

    2.1K40

    解析 Node.js 中的 process.stdin 和 process.stdout

    在 Node.js 的编程环境中,process.stdin 和 process.stdout 是两个至关重要的模块,它们直接与操作系统的标准输入和标准输出流进行交互。...process.stdout 的含义与作用process.stdout 是 Node.js 提供的标准输出流对象。它用于向控制台或其他目标设备输出数据,通常用于打印日志、显示结果等操作。...标准输出流在 Node.js 中是一个 Writable Stream,这意味着它支持所有 Writable 接口的方法和事件。...核心属性与方法process.stdout.write():该方法是输出数据的主要方式。与 console.log() 类似,但更灵活。....`);事件监听:drain:当输出缓冲区被清空时触发。error:当写入流发生错误时触发。

    5500

    关于 Node.js 调试,你需要了解的一切

    但体验过 Node.js 的朋友往往发现,一旦编写代码并尝试运行,往往难以轻松处理深藏其中的问题。...幸运的时候,代码崩溃还能显示明确的错误信息;但如果运气不好,应用程序仍能勉强运行,只是结果与开发者预期相去甚远。 什么是调试? 所谓调试,就是修复软件缺陷的艺术。...但没有哪种解决方案能够直接消除所有错误,而且任何一种编程语言都免不了出现以下几种错误类型。 语法错误 如果代码内容未遵循某些语言规则,就会触发错误。常见的语法错误包括拼写错误或缺少括号等。...,而 console.dir() 能会帮助大家完成其他费时费力的工作: console.dir(myObject, { depth: null, color: true }); Node.js util.debuglog...在 Chrome 中设置日志点 日志点为 console.log(),不涉及任何代码!执行此代码时会输出一条表达式,但与断点不同的是,处理过程不会暂停。

    47020

    Node.js中常用的设计模式有哪些?

    构建 Node.js 应用为何需要设计模式 设计模式为软件开发提供了一套标准化的解决方案。构建 Node.js 应用时,善用设计模式能够帮助开发者提升代码质量,节约开发时间,减少出错几率。...readFile 函数返回一个 promise 对象,该 promise对象成功时可以通过 then 方法获取文件内容,失败时可以通过 catch 方法获取错误信息。...console.log(myModule.publicVar); // 输出 'I am public' 回调模式 Node.js 使用回调模式来处理异步操作,如读写文件或网络请求。...; callback(null, data); // 第一个参数为错误对象,第二个参数为返回的数据 }, 2000); } function processData(err, data)...中间件可用于身份验证、日志记录、错误处理等任务。

    28410

    这里有一份Node.js入门指南和实践,请注意查收

    ,此方法可接收一个退出状态的可选参数 code,不传入时,会返回表示成功的状态码 0。...标准错误流: process.stderr process.stderr 是一个指向标准错误流的可写流 Writable Stream。...标准输出流:process.stdout process.stdout 是一个指向标准输出流的可写流 Writable Stream。...这是一个重要的功能,借助这一功能,可以返回部分完成的对象;这样,传递依赖也能被加载,即使它们可能导致循环依赖。 如果你希望一个模块多次执行,那么就应该输出一个函数,然后调用这个函数。...另外,在不区分大小写的文件系统或系统中,不同的文件名可能解析到相同的文件,但缓存仍会将它们视为不同的模块,会多次加载文件。如:require('./index')和 require('.

    3.6K30

    深入理解Node.js的进程与子进程

    process 的标准流对象深入理解 process.nextTick如何处理命令参数?命令行参数指的是 2 个方面:传给 node 的参数。...捕获了错误信息,并且进程以0退出。开发者可以在 uncaughtException 事件中,清除一些已经分配的资源(文件描述符、句柄等),不推荐在其中重启进程。...")); // 未被catch捕获的异常,交由unhandledRejection事件处理warning 事件告警不是 Node.js 和 Javascript 错误处理流程的正式组成部分。...当 Node.js 清空其事件循环并且没有其他工作要安排时,会触发 beforeExit 事件。...在调用 'exit' 事件监听器之后,Node.js 进程将立即退出,从而导致在事件循环中仍排队的任何其他工作被放弃。process 的标准流对象process 提供了 3 个标准流。

    2K21

    Node.js快速入门

    当 error 被触发时,EventEmitter 规定如果没有响 应的监听器,Node.js 会把它当作异常,退出程序并输出错误信息。...Node.js 沿用了这个标准,提供与习惯行为一致的 console 对象,用于向标准输出流(stdout)或标准错误流(stderr)输出字符。...stderr:标准错误流。 stdin:标准输入流。 argv:argv 属性返回一个数组,由命令行执行脚本时的各个参数组成。...如果不指定depth,默认会递归2层,指定为 null 表示将不限递归层数完整遍历对象。 如果color 值为 true,输出格式将会以ANSI 颜色编码,通常用于在终端显示更漂亮 的效果。...注册事件和回调到domain,当发生一个错误事件或抛出一个错误时,domain对象会被通知,不会丢失上下文环境,也不导致程序错误立即推出,与process.on(‘uncaughtException’)

    11.4K10

    一文读懂NodeJs知识体系和原理浅析

    内置的一款工具,目的在于安装和发布符合 node.js 标准的模块,从而实现社区共建的目的繁荣整个社区。...它将输出文件所在位置的绝对路径,且和命令行参数所指定的文件名不一定相同。 如果在模块中,返回的值是模块文件的路径。...这是标准的 Unix 做法,退出信号代码放在高位。 // 输出到终端 process.stdout.write("Hello World!"...// 这个方法比调用 Buffer.alloc() 更快, // 但返回的 Buffer 实例可能包含旧数据, // 因此需要使用 fill() 或 write() 重写。...上游输出的是文本流(标准输出流),下游输入的也是文本流(标准输入流) 对于可读流来说,push(data)时,data只能是String或Buffer类型,而消耗时data事件输出的数据都是Buffer

    1.3K10

    一文读懂NodeJs知识体系和原理浅析_2023-03-01

    内置的一款工具,目的在于安装和发布符合 node.js 标准的模块,从而实现社区共建的目的繁荣整个社区。...它将输出文件所在位置的绝对路径,且和命令行参数所指定的文件名不一定相同。 如果在模块中,返回的值是模块文件的路径。...这是标准的 Unix 做法,退出信号代码放在高位。 // 输出到终端 process.stdout.write("Hello World!"...// 这个方法比调用 Buffer.alloc() 更快, // 但返回的 Buffer 实例可能包含旧数据, // 因此需要使用 fill() 或 write() 重写。...上游输出的是文本流(标准输出流),下游输入的也是文本流(标准输入流) 对于可读流来说,push(data)时,data只能是String或Buffer类型,而消耗时data事件输出的数据都是Buffer

    1.2K00

    CCPP输入输出函数汇总分析

    stream是指向文件的指针,如果要从标准输入读取数据,则为stdin。 如果读取成功,则返回读取到的字符串;如果发生错误,则返回NULL。...注意,这并不一定是每次输出一行,因为它并不要求在null之前一定是换行符,buf中有就有,没有就没有,通常,在空字符之前是一个换行符,但并不要求总是如此。...补充:将一个以null结尾的字符串写到标准输出上,相当于进程->流->标准输出文件。终止符不写出,但是puts然后又将一个换行符写到标准输出。应当少用,以免需要记住它在最后是否添加了一个换行符。...在数组的尾端自动加一个null字节,但该字节不包括在返回值中。...在数组的尾端自动加一个null字节,但该字节不包括在返回值中。

    1.8K20

    前端基础:ECMAScript 6

    ECMA,希望这种语言能够成为国际标准。...ES6 既是一个历史名词,也是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了 ES2015、ES2016、ES2017 等等 搭建前端环境 Node 环境 什么是 Node.js...) # keywirds:项目关键字(可以不写) # author: 作者名字 # license: 发行项目需要的证书(可以不写) 最后会生成 package.json 文件,这个是包的配置文件,相当于...如果项目使用 1.9.1 版本进行开发,通过 npm 安装的版本太新,就会导致项目失效,可以执行以下命令安装对应的版本: npm install jquery@1.9.1 ES6 基本语法 ES 标准中不包含.../user.js" console.log(name); console.log(age); console.log(fn); 运行 test.js 出现错误,原因是 node.js 并不支持 ES6

    1.2K20

    Node.js 全局对象(上)

    它将输出文件所在位置的绝对路径,且和命令行参数所指定的文件名不一定相同。 如果在模块中,返回的值是模块文件的路径。...Node.js 沿用了这个标准,提供与习惯行为一致的 console 对象,用于向标准输出流(stdout)或标准错误流(stderr)输出字符。...3 console.error([data][, ...])输出错误消息的。控制台在出现错误时会显示是红色的叉子。 4 console.warn([data][, ...])输出警告消息。...1991); 运行结果为: Hello world byvoid%diovyb byvoid1991iovyb console.error():与console.log() 用法相同,只是向标准错误流输出...console.trace():向标准错误流输出当前的调用栈。 console.trace(); 运行结果为: Trace: at Object.

    1.8K30

    Node.js 项目调试指南

    如果幸运的话,你的代码可能会崩溃并显示一条明显的错误消息。如果你不走运,你的应用程序还是能运行的,但是最后的结果就不尽人意了。 什么是调试? 调试是修复软件 Bug 的艺术。...VS Code extension 会更容易,它会在你编码时验证代码: 逻辑错误 逻辑错误意味着你的代码可以正常运行但没有按预期工作。...}); 使用 Node.js util.debuglog 进行调试 Node.js 标准 util 模块提供了一个 debuglog 方法,它可以有条件地将日志消息写入 STDERR: const...当代码执行一行时输出表达式,但与断点不同的是,处理不会暂停。...step out : 继续处理到函数结束,返回调用命令 重新启动应用程序和调试器 停止应用程序和调试器 和 Chrome DevTools 一样,你可以右击任何一行来添加: 一个标准的断点。

    73720
    领券