节点js写文件

时间:2014-09-07 01:54:58

标签: javascript node.js file-io filesystems

这是它应该做的:

  1. 如果没有html文件制作一个,那么它的内容应该是"正常写" LINE 87 - 93

  2. 如果有内容,请使用&#34覆盖"覆盖" LINE 65 -75

  3. 如果没有内容,请将内容"空白写入" 第78 - 82行

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

1 个答案:

答案 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();