web-dev-qa-db-ja.com

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){
            return console.error(err);
        }           
        return JSON_string;
    });

他にも同様の質問がありますが、/で始まるかどうかにかかわらず、パスがすべて間違っています。このnode.jsアプリケーションを実行するルートにファイルを書き込みたいだけです(このディレクトリではnpmで初期化されます) ..)。

で実行

Sudo node server4.js

どちらも機能しません。フラグをw +やwxなどに変更しても、役に立ちません。ファイルが存在する場合、コードは機能します。

ノードv9 +。

WriteFile()関数を使用する必要があります。

4
SubjectX

これは私のために働いています、これがあなたのシステムで働くかどうかチェックしてください:

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

(書く以外に確認のために読む)

4
dpetrini