节点js写入文件

这是它应该做的:

  1. 如果没有html文件制作一个,它的内容应该是“正常写入”LINE 87 – 93

  2. 如果有内容,用“覆盖”LINE 65 -75覆盖它

  3. 如果没有内容,请将内容“空白写”LINE 78 – 82

2作品。 1将使html文件,但不添加内容。 3不添加内容。

我不知道为什么所有3的文件写作部分是相同的。 请帮忙谢谢

这是他的代码:

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(); } } }); 

最大的区别在于fs.writeFile(htmlFILE,'overwrite'); (正在工作的那个)你没有process.exit();

writeFile是一个asynchronous函数。 如果您立即调用process.exit() ,则不会让nodejs将时间写入文件。

尝试像这样:

 fs.writeFile(htmlFILE,'normal blank write', function(err){ if(!err) log('blank write'); else log('error: ' + err); process.exit(); ); 

你甚至可以删除所有的process.exit();