javascript - Node js写入文件

标签 javascript node.js file-io filesystems

这是它应该做的:

  1. 如果没有html文件做一个,内容应该是“正常写入” 第 87 - 93 行

  2. 如果有内容,用"overwrite"覆盖 第 65 -75 行

  3. 如果有一个没有内容,将内容设为“空白” 第 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/

相关文章:

node.js - mailgun 的域名示例适用于 Nodejs?

c++ - 如何用C++打开同一目录下的文件?

javascript - Webgl 未捕获引用错误 : createShaderFromScriptElement is not defined

javascript - 将变量发布到 php 文件并使用 ajax 在同一页面上加载结果

javascript - 将 Bower 添加到 Gulp/Nodemon/Browsersync/Angular 配置中

node.js - 在服务器之间扩展 socket.io

android - 只读文件不能在android中使用C的remove()删除

java - Java 的文件路径或文件位置 - new file()

javascript - 未知错误 : Runtime. 评估抛出异常:SyntaxError:意外的 token var

javascript - AngularJS:仅当它是另一个指令的子指令时才应用嵌入指令