Node.js 中的 console.log 输出的长度是否有限制?以下打印最多 56462 的数字,然后停止。出现这种情况是因为我们从 MySQL 返回数据集,而输出将在 327k 个字符后退出。
var out = "";
for (i = 0; i < 100000; i++) {
out += " " + i;
}
console.log(out);
字符串本身看起来不错,因为它返回最后几个数字,最多为 99999:
console.log(out.substring(out.length - 23));
返回:
99996 99997 99998 99999
这是使用 Node v0.6.14。
最佳答案
你试过在内存更大的机器上写这么多吗?
根据 Node 源代码控制台正在写入流:https://github.com/joyent/node/blob/cfcb1de130867197cbc9c6012b7e84e08e53d032/lib/console.js#L55
并且流可以将数据缓冲到内存中:http://nodejs.org/api/stream.html#stream_writable_write_chunk_encoding_callback
因此,如果您将大量数据重新放入流中,则可能会达到内存上限。
我建议您拆分数据并将其输入 process.stdout.write
方法,这是一个示例:http://nodejs.org/api/stream.html#stream_event_drain
关于node.js - 是否有 Node.js console.log 长度限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27026301/