"process.stdout. "在node.js中写入“和”console.log“?
EDIT:使用console.log作为变量显示了许多不可读的字符,而使用process.stdout.write显示了一个对象。
为什么呢?
"process.stdout. "在node.js中写入“和”console.log“?
EDIT:使用console.log作为变量显示了许多不可读的字符,而使用process.stdout.write显示了一个对象。
为什么呢?
当前回答
一个没有被提及的巨大区别是这个过程。stdout只接受字符串作为参数(也可以是管道流),而console.log接受任何Javascript数据类型。
e.g:
// ok
console.log(null)
console.log(undefined)
console.log('hi')
console.log(1)
console.log([1])
console.log({one:1})
console.log(true)
console.log(Symbol('mysymbol'))
// any other data type passed as param will throw a TypeError
process.stdout.write('1')
// can also pipe a readable stream (assuming `file.txt` exists)
const fs = require('fs')
fs.createReadStream('file.txt').pipe(process.stdout)
其他回答
Console.log()使用格式化输出调用process.stdout.write。具体实现请参见console.js中的format()。
目前(v0.10.ish):
Console.prototype.log = function() {
this._stdout.write(util.format.apply(this, arguments) + '\n');
};
简单的区别是: Console.log()方法自动添加新的行字符。这意味着如果我们循环遍历并打印结果,每个结果将在新行中打印。
Process.stdout.write()方法不会追加新的行字符。适用于打印图案。
实现process.sdout。Write, process. sout . Write是一个直接输出到控制台的缓冲区/流。
根据我的puglin serverline: console = new console (consoleOptions),您可以用自己的readline系统重写console类。
你可以看到console.log的源代码:
第十四节。X - lib/internal/console/constructor.js; 对于旧版本:v10.0.0 - lib/console.js。
更多信息:
readline。创建你的自定义行为或使用控制台输入。
我刚刚注意到,在获得https帮助后,在研究这个问题时。申请邮寄方式。我想分享一些帮助你理解的信息。
Process.stdout.write不会添加新行,而console.log会,就像其他人提到的那样。但是还有一个例子更容易解释。
var req = https.request(options, (res) => {
res.on('data', (d) => {
process.stdout.write(d);
console.log(d)
});
});
process.stdout.write (d);将正确地打印数据而不需要新行。然而console.log(d)将打印一个新行,但数据不会正确显示,给出这个<Buffer 12 34 56…为例。
为了使console.log(d)正确地显示信息,我必须这样做。
var req = https.request(options, (res) => {
var dataQueue = "";
res.on("data", function (d) {
dataQueue += d;
});
res.on("end", function () {
console.log(dataQueue);
});
});
所以:
Process.stdout.write在检索数据时连续打印信息,不添加新行。 log打印在检索点获得的信息,并添加新行。
我只能这么解释了。
查看Node文档,显然console.log只是process.stdout.write,在结尾加一个换行符:
console.log = function (d) {
process.stdout.write(d + '\n');
};
来源:http://nodejs.org/docs/v0.3.1/api/process.html process.stdout