协慌网

登录 贡献 社区

使用 Node.JS,如何将 JSON 文件读取到(服务器)内存中?

背景

我正在对 Node.js 进行一些实验,想从文本文件或. js 文件(更好的??)中读取 JSON 对象到内存中,以便我可以从代码中快速访问该对象。我意识到那里有诸如 Mongo,Alfred 等之类的东西,但这不是我现在所需要的。

问题

如何使用 JavaScript / Node 从文本或 js 文件中读取 JSON 对象并将其读入服务器内存中?

答案

同步:

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

我发现执行此操作的最简单方法是仅使用require和 JSON 文件的路径。

例如,假设您具有以下 JSON 文件。

test.json

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

require轻松地将其加载到您的 node.js 应用程序中

var config = require('./test.json');
console.log(config.firstName + ' ' + config.lastName);

异步是有原因的!向 @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
}