【问题标题】:Writing data to text file in Node.js [duplicate]在Node.js中将数据写入文本文件[重复]
【发布时间】:2014-05-12 19:30:18
【问题描述】:

目前,我有以下代码块:

net = require('net');
var clients = [];

net.createServer(function(s) {

  clients.push(s);

  s.on('data', function (data) {
    clients.forEach(function(c) {
      c.write(data);
    });
    process.stdout.write(data);//write data to command window
  });

  s.on('end', function() {
    process.stdout.write("lost connection");
  });

}).listen(9876);

用于将我的 Windows 计算机设置为服务器并从我的 linux 计算机接收数据。它当前正在将数据写入命令窗口。我想将数据写入文本文件到特定位置,我该怎么做?

【问题讨论】:

  • 注意Java和JavaScript不一样; Node.js 是服务器端 JavaScript.
  • 这就是为什么我在新手中说这个,我知道第 n 个 abt java :(
  • 幸运的是,您使用的语言是 JavaScript,您不需要了解任何关于 Java 的知识。

标签: node.js file-io


【解决方案1】:

使用fs模块处理文件系统:

var net = require('net');
var fs = require('fs');
// ...snip
s.on('data', function (data) {
  clients.forEach(function(c) {
    c.write(data);
  });

  fs.writeFile('myFile.txt', data, function(err) {
    // Deal with possible error here.
  });
});

【讨论】:

  • 默认情况下,writeFile() 将覆盖文件中已经存在的任何内容,因此此答案只会保留文件中的最后一个“数据”项。
  • 好吧,这正是我想做的,覆盖数据,并将最新数据只保留在文本文件中。
  • 但是,我现在遇到的问题是,我没有任何错误,但是即使使用 windows 的搜索功能,我也无法归档 .txt 文件:/
  • @FWing txt文件应该在你运行node的目录下
  • 哦,谢谢,我明白了,不知道为什么搜索功能不起作用
【解决方案2】:

您应该阅读 node.js 中的 File System 支持。

下面的方法可能是做你想做的最简单的方法,但它不一定是最有效的,因为它每次都会创建/打开、更新,然后关闭文件。

function myWrite(data) {
    fs.appendFile('output.txt', data, function (err) {
      if (err) { /* Do whatever is appropriate if append fails*/ }
    });
}

【讨论】:

  • 当我遇到错误时是否必须做好准备?我不知道该怎么办?
  • 如果你不知道还能做什么,你可以向控制台输出一个错误。例如:console.error("输出数据失败。数据: %s, 错误: %s", data, err);
  • 同样的问题,我没有任何错误,但我找不到我的文件,我不确定代码是否工作
  • 您可以明确指定文件的完整路径,以便您知道它的去向。
  • 是的,我成功了,非常感谢!
猜你喜欢
  • 2018-02-02
  • 1970-01-01
  • 1970-01-01
  • 2019-02-22
  • 2016-02-04
  • 2011-10-02
  • 2012-07-13
  • 2013-09-19
  • 1970-01-01
相关资源
最近更新 更多