在得到命令行传入的数据之后,使用handlebars的模板引擎来将,数据按一定的格式写入到模板里面,然后输出成相应的文件即可
首先我们需要读取模板文件,使用fs模块的readfile函数
function readFileByq(sources){ var deffered = q.defer(); fs.readFile(sources, 'utf8', function(err, data){ if(err){ deffered.reject(err); }else{ deffered.resolve(data); } }); return deffered.promise; }
handleBars.compile(data)(edata[0]);
function createFileByq(path, data){ var deffered = q.defer(); fs.writeFile(path, data, function(err){ if(err){ deffered.reject(err); }else{ deffered.resolve(data); } }); return deffered.promise; }这里都使用了,q模块,可以将异步编程,转化为使用then形式进行链接的函数调用,简化异步编程的难度
function template(sources, edata, path){ readFileByq(sources) .then(function(data){ return handleBars.compile(data)(edata[0]); }).then(function(data){ createFileByq(path, data); }).error(function(err){ console.log(err); }); } module.exports = { template: template };