Node.js 在NodeJs中的fs转储等价物? 客观的
在终止应用程序之前,强制fs(以及使用它的库)将所有内容写入文件 背景 我正在使用npm包将对象写入CSV文件 一旦库写入CSV文件,我想使用Node.js 在NodeJs中的fs转储等价物? 客观的,node.js,csv,dump,fs,csv-write-stream,Node.js,Csv,Dump,Fs,Csv Write Stream,在终止应用程序之前,强制fs(以及使用它的库)将所有内容写入文件 背景 我正在使用npm包将对象写入CSV文件 一旦库写入CSV文件,我想使用process.exit()终止我的应用程序 代码 为了实现上述目标,我写了以下内容: let writer = csvWriter({ headers: ['country', 'postalCode'] }); writer.pipe(fs.createWriteStream('myOutputFile.csv')); //Very big a
process.exit()
终止我的应用程序
代码
为了实现上述目标,我写了以下内容:
let writer = csvWriter({
headers: ['country', 'postalCode']
});
writer.pipe(fs.createWriteStream('myOutputFile.csv'));
//Very big array with a lot of postal code info
let currCountryCodes = [{country: Portugal, postalCode: '2950-286'}, {country: Barcelona, postalCode: '08013'}];
for (let j = 0; j < currCountryCodes.length; j++) {
writer.write(currCountryCodes[j]);
}
writer.end(function() {
console.log('=== CSV written successfully, stopping application ===');
process.exit();
});
let writer=csvWriter({
标题:['country','postalCode']
});
writer.pipe(fs.createWriteStream('myOutputFile.csv');
//非常大的数组,包含大量的邮政编码信息
让currCountryCodes=[{国家:葡萄牙,邮政编码:'2950-286'},{国家:巴塞罗那,邮政编码:'08013'}];
for(设j=0;j
问题
这里的问题是,如果执行process.exit()
,库将没有时间写入文件,文件将为空
由于库使用了fs
,所以我解决这个问题的方法是在NodeJs中强制使用fs.dump()
或类似的东西,但是在搜索之后,我没有发现类似的东西
问题
我想你的猜测是对的。 调用
process.exit()
时,管道写入流尚未完成写入
如果您真的想显式终止服务器,这就可以了
let r = fs.createWriteStream('myOutputFile.csv');
writer.pipe(r);
...
writer.end(function() {
r.end(function() {
console.log('=== CSV written successfully, stopping application ===');
process.exit();
});
});
只是好奇。您需要调用
process.exit()
的具体原因是什么?我猜即使你没有显式调用exit,进程也会终止。因为我正在运行一个nodeJS应用程序,一旦启动,服务器将永远运行,我需要终止它。这正是解决我问题的方法!