对于 Node.js,以类似的方式添加到文件的最佳方式是什么?
fs.appendFile(path.join(__dirname, 'app.log'), 'appendme', 'utf8')
就个人而言,最好的方法实际上是围绕异步解决方案创建一个日志,我基本上可以从顶部推送到文件。
对于 Node.js,以类似的方式添加到文件的最佳方式是什么?
fs.appendFile(path.join(__dirname, 'app.log'), 'appendme', 'utf8')
就个人而言,最好的方法实际上是围绕异步解决方案创建一个日志,我基本上可以从顶部推送到文件。
这个解决方案不是我的,我不知道它来自哪里,但它有效。
const data = fs.readFileSync('message.txt')
const fd = fs.openSync('message.txt', 'w+')
const insert = Buffer.from("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;
});
这是一个如何使用 gulp 和自定义构建函数将文本添加到文件的示例。
var through = require('through2');
gulp.src('somefile.js')
.pipe(insert('text to prepend with'))
.pipe(gulp.dest('Destination/Path/'))
function insert(text) {
function prefixStream(prefixText) {
var stream = through();
stream.write(prefixText);
return stream;
}
let prefixText = new Buffer(text + "\n\n"); // allocate ahead of time
// creating a stream through which each file will pass
var stream = through.obj(function (file, enc, cb) {
//console.log(file.contents.toString());
if (file.isBuffer()) {
file.contents = new Buffer(prefixText.toString() + file.contents.toString());
}
if (file.isStream()) {
throw new Error('stream files are not supported for insertion, they must be buffered');
}
// make sure the file goes through the next gulp plugin
this.push(file);
// tell the stream engine that we are done with this file
cb();
});
// returning the file stream
return stream;
}
资料来源:[cole_gentry_github_dealingWithStreams][1]
它可以通过使用prepend-file
节点模块。请执行下列操作:
npm i prepend-file -S
prepend-file module
在您各自的代码中导入。例子:
let firstFile = 'first.txt';
let secondFile = 'second.txt';
prependFile(firstFile, secondFile, () => {
console.log('file prepend successfully');
})