node.js - 使用 Node.js 将一行写入 .txt 文件

标签 node.js fs

我想使用 Node.js 创建一个简单的日志系统,它将过去一行之前的一行打印到一个 .txt 文件中。但是,我不知道 Node.js 的文件系统功能是如何工作的。

谁能解释一下?

最佳答案

将数据插入文本文件的中间并不是一项简单的任务。如果可能,您应该将其附加到文件的末尾。

在文本文件中追加数据的最简单方法是使用内置 fs.appendFile(filename, data[, options], callback) function来自 fs module :

var fs = require('fs')
fs.appendFile('log.txt', 'new data', function (err) {
  if (err) {
    // append failed
  } else {
    // done
  }
})

但是如果你想多次将数据写入日志文件,那么最好使用fs.createWriteStream(path[, options]) function。而是:

var fs = require('fs')
var logger = fs.createWriteStream('log.txt', {
  flags: 'a' // 'a' means appending (old data will be preserved)
})

logger.write('some data') // append string to your file
logger.write('more data') // again
logger.write('and more') // again

每次您调用 .write 时,Node 都会不断将新数据附加到您的文件中,直到您的应用程序关闭,或者直到您手动关闭调用 .end 的流:

logger.end() // close string

请注意,上述示例中的 logger.write 不会写入新行。将数据写入新行:

var writeLine = (line) => logger.write(`\n${line}`);
writeLine('Data written to a new line');

关于node.js - 使用 Node.js 将一行写入 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33418777/

相关文章:

node.js - 如何从meteor访问node.js的文件系统?

node.js - 事后如何编写 HTTP 500 错误 header

Node.js:在使用 'fs' 遍历目录时检查文件是否为符号链接(symbolic link)

node.js - 如何知道读取文件时使用什么编码?

events - 有 connect.static 的事件吗?

javascript - Node.js Express/less-middleware & Bootstrap 3

android - 通过 socket.io-client 和 libjingle 从 Android 应用程序流式传输到浏览器客户端应用程序

node.js - Nodeschool 的 Stream-Adventure #7 HTTP 服务器

javascript - 使用 NodeJS/AngularJS 创建到 MySQL 的 RESTful API 桥

python - 如何在Node JS中访问当前文件文件夹之外的文件