同一文件上的循环文字

时间:2015-04-28 15:24:00

标签: javascript node.js

我要在nodejs中的同一个文件上做循环写作。 特别是这是伪代码:

value = 77;
for(var i=0; i<list.length; i++){
if(list[i] > 10){
    proxy.setNewState(value, function(response){
      console.log(response);
    });
  }
}

函数“setNewState”执行一些嵌套操作: (1)写一个文件“out.txt”的东西...... (2)运行一个模块,使用该文件生成一个URL,对服务器发出HTTP请求(注意:我需要编写一个文件,因为这个模块运行一些shell命令,使用这个文件)。 (3)使用回调返回响应。

我的问题(我认为)是“for”循环不好,因为文件是重写的,因此HTTP没有正确执行。

有什么帮助吗?我该怎么办?

1 个答案:

答案 0 :(得分:0)

在循环之前打开文件并在循环内逐步写入。然后在循环后关闭它。

假设您正在使用the standard Node File System API

  • 使用fs.open()异步打开文件或fs.openSync()同步打开文件
  • 使用fs.write()异步写入文件或fs.writeSync()同步写入文件。如果使用缓冲区,请确保使用带缓冲区的方法签名。如果您正在使用数据,请务必使用获取数据的方法签名。另请注意文档中有关多次使用异步版本而不等待回调的警告!如果您需要这样做,请使用fs.createWriteStream()等而不是这些功能。这将返回a Writable Stream,因此请另外阅读文档。
  • 使用fs.close()fs.closeSync()关闭文件。

无法使用的是fs.writeFile()fs.writeFileSync(),因为这些将在每次写入时替换该文件。