这是它应该做的:
如果没有html文件制作一个,那么它的内容应该是"正常写" LINE 87 - 93
如果有内容,请使用&#34覆盖"覆盖" LINE 65 -75
如果没有内容,请将内容"空白写入" 第78 - 82行
2作品。 1将生成html文件但不添加内容。 3不会添加内容。
我不知道为什么所有3的文件写入部分是相同的。 请帮忙 感谢
HERE'代码:
if (htmlFILE) {
log('INPUT'.red+' '+htmlFILE);
fs.readFile(htmlFILE,'utf8',function(err,data) {
if (err) {
error(err);
} else {
if (data.length >= 1) {
terminal.question('Do you want to overwrite data in '+htmlFILE+'? [ Y or N ] ',function(answer){
terminal.close();
if (answer.toLowerCase() == 'y') {
log(' WRITING FILE '.inverse.cyan+' '+htmlFILE.yellow);
//WRITE INTO THE FILE HERE
fs.writeFile(htmlFILE,'overwrite');
log('overwritten');
} else {
log(' END PROCESS '.inverse.red);
process.exit();
}
});
} else {
log(' WRITING FILE '.inverse.cyan+' '+htmlFILE.yellow);
//WRITE INTO THE FILE HERE
fs.writeFile(htmlFILE,'normal blank write');
log('blank write');
process.exit();
}
}
});
} else {
//WRITE TO FILE HERE
log('INPUT'.red+' none');
htmlFILE = "Backkick "+Math.random()+'.html';
log('info'.inverse.red+' '+'create '+htmlFILE);
fs.writeFile(htmlFILE,'normal write');
log('normal write');
process.exit();
}
}
});
答案 0 :(得分:2)
最大的区别在于fs.writeFile(htmlFILE,'overwrite');
(正在工作的那个)之后你没有process.exit();
。
writeFile
是一个异步函数。如果您之后立即致电process.exit()
,则不要让nodejs有时间将内容写入文件。
尝试类似:
fs.writeFile(htmlFILE,'normal blank write', function(err){
if(!err)
log('blank write');
else
log('error: ' + err);
process.exit();
);
你甚至可以删除所有process.exit();