Node.js将一行写入.txt文件

我想创build一个简单的日志系统,它使用Node.js在过去的行之前打印一行到一个txt文件,但我不知道如何从Node.js的文件系统工作。 有人可以解释吗?

       

网上收集的解决方案 "Node.js将一行写入.txt文件"

将数据插入到文本文件的中间不是一件简单的事情。 如果可能的话,你应该把它追加到文件的末尾。

追加数据一些文本文件最简单的方法是使用fs模块的 fs.appendFile(filename, data[, options], callback)函数 :

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

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

 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 ,节点都会继续向文件附加新数据,直到您的应用程序closures,或者直到您手动closuresstream调用.end

 logger.end() // close string 

简单地使用fs模块和这样的东西:

 fs.appendFile('server.log', 'string to append', function (err) { if (err) return console.log(err); console.log('Appended!'); }); 

如果你想实现一个日志系统,我build议你看看Bunyan软件包。

步骤1

如果你有一个小文件读取所有的文件数据到内存

第2步

将文件数据string转换为数组

第3步

search数组以查找要插入文本的位置

步骤4

一旦你有位置插入你的文字

 yourArray.splice(index,0,"new added test"); 

第5步

将你的数组转换为string

 yourArray.join(""); 

第6步

像这样写你的文件

 fs.createWriteStream(yourArray); 

如果你的文件太大,不build议这样做