如何同步Node.Js中的文件写入
我正在使用EJS compile创建通知模板,我想知道如何将文件并行写入文件系统,并在保存所有文件后发送通知 请参阅下面我使用的代码片段如何同步Node.Js中的文件写入,node.js,Node.js,我正在使用EJS compile创建通知模板,我想知道如何将文件并行写入文件系统,并在保存所有文件后发送通知 请参阅下面我使用的代码片段 var fs = require('fs'); var ejs = require('ejs'); var arrayOfData = [someData]; //Prepare data from database //Iterate through the data for (var i = 0; i < arrayOfData.length;
var fs = require('fs');
var ejs = require('ejs');
var arrayOfData = [someData]; //Prepare data from database
//Iterate through the data
for (var i = 0; i < arrayOfData.length; i++) {
generateFileFromTemplate(arrayOfData[i],function(){});
}
function generateFileFromTemplate(templateData,callback)
{
var outputFile = fileData.Id + ".html";
var compiled = ejs.compile(fs.readFileSync('email-template.ejs', 'utf8'));
var html = compiled(templateData);
fs.writeFile(outputFile, html, callback);
}
var fs=require('fs');
var ejs=需要('ejs');
var arrayOfData=[someData]//从数据库准备数据
//遍历数据
对于(变量i=0;i
请提供帮助。您可以使用一个名为Async的强大实用程序库,特别是它的
并行方法:。
下面是一个例子:
var async = require('async');
/*-------------*/
var tasks = arrayOfData.map(function(data) {
return function(cb) {
generateFileFromTemplate(data,function(){});
cb(null);
}
});
async.parallel(tasks, function(err) {
console.log('My job is done');
})
您可以使用一个名为Async的强大实用程序库,特别是它的parallel
方法:。
下面是一个例子:
var async = require('async');
/*-------------*/
var tasks = arrayOfData.map(function(data) {
return function(cb) {
generateFileFromTemplate(data,function(){});
cb(null);
}
});
async.parallel(tasks, function(err) {
console.log('My job is done');
})
用于您的用例
async.each(arrayOfData,
function(ele, next){
generateFileFromTemplate(ele,function(){});
},
function(err){
if(err) console.log('err', err);
sendNotification();
}
);
用于您的用例
async.each(arrayOfData,
function(ele, next){
generateFileFromTemplate(ele,function(){});
},
function(err){
if(err) console.log('err', err);
sendNotification();
}
);
你能接受其中一个答案作为解决方案吗?你能接受其中一个答案作为解决方案吗?