Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何将字符串附加到文件?_Node.js - Fatal编程技术网

Node.js 如何将字符串附加到文件?

Node.js 如何将字符串附加到文件?,node.js,Node.js,我有一个多进程node.js。我只想在每个请求中向一个文件添加一个字符串(如nginx、apache等中的日志文件)。最好的方法是什么? 简单: 否则?这将起作用,但如果它不断打开和关闭文件,则可能不是最佳解决方案。对于具有更快写入速度的内容,我会尝试将其与fs.createWriteStream进行基准测试,特别是因为这为您提供了一个可以在路由中使用的范围 var fs = require("fs"); //set dummy data as random number var dat

我有一个多进程node.js。我只想在每个请求中向一个文件添加一个字符串(如nginx、apache等中的日志文件)。最好的方法是什么? 简单:


否则?

这将起作用,但如果它不断打开和关闭文件,则可能不是最佳解决方案。对于具有更快写入速度的内容,我会尝试将其与fs.createWriteStream进行基准测试,特别是因为这为您提供了一个可以在路由中使用的范围

var fs = require("fs");

   //set dummy data as random number
var data = Math.floor(Math.random()*11);
   //Set our log file as a writestream variable with the 'a' flag
var logFile = fs.createWriteStream('log.txt', {
  flags: "a",
  encoding: "encoding",
  mode: 0744
})
   //call the write option where you need to append new data
logFile.write(new Date().toSting + ': ' data);
logFile.write(new Date().toSting + ': ' data);

另一个解决方案是
fs.appendFile
。正如Sdedelbrock所指出的,
fs.createWriteStream
比这种方法快得多,因为它不需要不断地打开和关闭文件。我在我的机器上编写了一个小的基准测试,速度快了大约3倍,绝对值得

var fs = require("fs");

   //set dummy data as random number
var data = Math.floor(Math.random()*11);
   //Set our log file as a writestream variable with the 'a' flag
var logFile = fs.createWriteStream('log.txt', {
  flags: "a",
  encoding: "encoding",
  mode: 0744
})
   //call the write option where you need to append new data
logFile.write(new Date().toSting + ': ' data);
logFile.write(new Date().toSting + ': ' data);