Node.js writeFile不创建文件

Node.js writeFile不创建文件,node.js,fs,writefile,Node.js,Fs,Writefile,错误代码如下所示: { Error: ENOENT: no such file or directory, open 'sad' errno: -2, code: 'ENOENT', syscall: 'open', path: 'sad' } 其中“sad”是我想写入的文件名,但它不存在 代码如下所示: fs.writeFile(filename, JSON_string, { flag: 'w' }, function(err){ if(err){

错误代码如下所示:

{ Error: ENOENT: no such file or directory, open 'sad' errno: -2, code: 'ENOENT', syscall: 'open', path: 'sad' }
其中“sad”是我想写入的文件名,但它不存在

代码如下所示:

fs.writeFile(filename, JSON_string, { flag: 'w' }, function(err){           
        if(err){
            return console.error(err);
        }           
        return JSON_string;
    });
还有其他类似的问题,但它们的路径都是错误的,不管是以/开头还是不以/开头,我只想在根目录上编写一个文件,从那里我运行node.js应用程序(它也在这个目录中用npm初始化)

sudo node server4.js
也不行。 将标志更改为w+或wx或其他任何形式都无济于事。 如果文件存在,代码就会工作

节点v9+


我需要使用writeFile()函数。

这对我有效,请检查您的系统是否有效:

var fs = require('fs')

fs.writeFile('./myfile.txt', 'Content to write', { flag: 'w' }, function(err) {
    if (err) 
        return console.error(err); 
    fs.readFile('./myfile.txt', 'utf-8', function (err, data) {
        if (err)
            return console.error(err);
        console.log(data);
    });
});

(除了写之外,还要读确认)

hi,“filename”变量中有什么?我查过了。工作正常。您在
filename
中使用的是什么?使用
\uuuu dirname+filename
访问您的文件路径。如OP中所述,文件名是sad,它将被发送到函数参数filename。