nodejs前置于文件

Mat*_*ian 14 javascript node.js

对于Node.js,以SIMILAR方式预先添加到文件的最佳方法是什么

fs.appendFile(path.join(__dirname, 'app.log'), 'appendme', 'utf8')
Run Code Online (Sandbox Code Playgroud)

就个人而言,最好的方法是围绕一个异步解决方案创建一个日志,我可以从顶部推送到该文件.

Chr*_*ich 8

看来确实可以使用https://www.npmjs.com/package/prepend-file

  • 注意:这不像宣传的那样 - 操作的复杂性取决于文件大小 - 在4gb文件之前将复制4gb的数据. (4认同)
  • @BenjaminGruenbaum它被宣传为前置文件,它对我来说非常适合. (2认同)
  • 好吧,它可能像宣传的那样有效,但在某些情况下并不是一个好主意! (2认同)

gal*_*lki 6

这个解决方案不是我的解决方案,我不知道它来自哪里,但它有效.

const data = fs.readFileSync('message.txt')
const fd = fs.openSync('message.txt', 'w+')
const insert = new Buffer("text to prepend \n")
fs.writeSync(fd, insert, 0, insert.length, 0)
fs.writeSync(fd, data, 0, data.length, insert.length)
fs.close(fd, (err) => {
  if (err) throw err;
});
Run Code Online (Sandbox Code Playgroud)

  • 惊人的!这效果很好。顺便提一句。`Buffer()` 已弃用 - 在上面的代码中使用 `Buffer.from()`。 (2认同)

Ben*_*aum 5

无法添加到文件的开头.看到这个问题在C类似的问题或这个问题在C#中类似的问题.

我建议你以传统的方式进行日志记录(即,记录到文件末尾).

否则,无法读取文件,将文本添加到开头并将其写回文件,这可能会非常快.