我想每隔几秒钟将json格式的一些数据写入(记录)到文件中。 (例如{timestamp: new Date(), data: "somedata"}
)
如果已将新行(json格式的新数据对象)写入文件,则我想读取文件的最后一行,并在控制台上记录该行。
如何使用Node.js文件系统实现此目的?
答案 0 :(得分:0)
我建议将mongodb与mongoose一起使用以保存日志。有一个适合您的示例。
var schema = new mongoose.Schema({
createdAt: { type: Date, default: Date.now },
inventoryDetails: Schema.Types.Mixed
});
// catching every save
schema.post('save', (doc) => {
console.log('%s has been saved', doc._id);
});
var Log = mongoose.model('Log', schema);
setInterval(() => {
// create data log
Log.create({ data: { any: 'thing'} }, (err, small) => {
if (err) throw Error(err);
// saved!
});
},1000);
答案 1 :(得分:0)
一种解决方案是这样的:
import fs from 'fs'
const ws = fs.createWriteStream("./test.txt", { flags: 'a' })
let writeToFile = {
timestamp: new Date(),
data: "somedata"
}
const i = setInterval(() => {
ws.write(JSON.stringify(writeToFile), (err) => console.log(`wrote ${JSON.stringify(writeToFile)} to file`))
}, 1000)
process.stdin.resume()
important是第二个参数{flags:'a'}
,它设置要附加到文件的位置。您也可以去fs.appendfile()