769

バックグラウンド

私は Node.js でいくつかの実験を行っており、JSON オブジェクトをテキスト ファイルまたは .js ファイル (どちらが優れているか??) からメモリに読み込んで、コードからそのオブジェクトにすばやくアクセスできるようにしたいと考えています。Mongo や Alfred などがあることはわかっていますが、それは今私が必要としているものではありません。

質問

JavaScript/Node を使用して、JSON オブジェクトをテキストまたは js ファイルからサーバーメモリに読み込むにはどうすればよいですか?

4

12 に答える 12

1430

同期:

var fs = require('fs');
var obj = JSON.parse(fs.readFileSync('file', 'utf8'));

非同期:

var fs = require('fs');
var obj;
fs.readFile('file', 'utf8', function (err, data) {
  if (err) throw err;
  obj = JSON.parse(data);
});
于 2012-04-04T12:27:19.797 に答える
453

これを行う最も簡単な方法はrequire、JSON ファイルへのパスを使用することです。

たとえば、次の JSON ファイルがあるとします。

test.json

{
  "firstName": "Joe",
  "lastName": "Smith"
}

これを node.js アプリケーションに簡単にロードできます。require

var config = require('./test.json');
console.log(config.firstName + ' ' + config.lastName);
于 2014-10-19T02:14:04.047 に答える
60

非同期には理由があります。@mihai に投石

それ以外の場合、彼が非同期バージョンで使用したコードは次のとおりです。

// Declare variables
var fs = require('fs'),
    obj

// Read the file and send to the callback
fs.readFile('path/to/file', handleFile)

// Write the callback function
function handleFile(err, data) {
    if (err) throw err
    obj = JSON.parse(data)
    // You can now play with your datas
}
于 2012-04-04T12:33:10.283 に答える
2

https://nodejs.org/dist/latest-v6.x/docs/api/fs.html#fs_fs_readfile_file_options_callback

var fs = require('fs');  

fs.readFile('/etc/passwd', (err, data) => {
  if (err) throw err;
  console.log(data);
});  

// options
fs.readFile('/etc/passwd', 'utf8', callback);

https://nodejs.org/dist/latest-v6.x/docs/api/fs.html#fs_fs_readfilesync_file_options

File System docs で Node.js のすべての使用法を確認できます。
このヘルプがあなたに役立つことを願っています!

于 2016-11-02T20:19:39.703 に答える