这是它应该做的:
如果没有html文件做一个,内容应该是“正常写入” 第 87 - 93 行
如果有内容,用"overwrite"覆盖 第 65 -75 行
如果有一个没有内容,将内容设为“空白” 第 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
是一个异步函数。如果您在之后立即调用 process.exit()
,则不会让 nodejs 有时间将内容写入文件。
尝试这样的事情:
fs.writeFile(htmlFILE,'normal blank write', function(err){
if(!err)
log('blank write');
else
log('error: ' + err);
process.exit();
);
您甚至可以删除所有 process.exit();
关于javascript - Node js写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25706419/