【发布时间】:2015-12-20 00:04:34
【问题描述】:
如果我在项目中使用 JSON 数据,最好像这样使用 readFile:
var fs = require('fs');
var obj;
fs.readFile('file', 'utf8', function (err, data) {
if (err) throw err;
obj = JSON.parse(data);
});
或者直接使用 require
var config = require('./file.json');
我已尝试查找性能比较,但找不到。在这个post by FredKSchott 中,作者深入探讨了 require 函数,它看起来可以通过缓存来提高性能,但它看起来是同步的,而 fs.readFile 是异步
【问题讨论】:
-
第一次使用时它是同步的这一事实仅在第一次使用发生在时间敏感的事情(例如 http 请求)期间才重要。否则我看不出有太多理由改为使用 readFile ,除非您希望能够在未来读取时看到对文件的更改。
-
请注意,如果您决定使用 require,文件将被加载并缓存,直到您重新启动服务器。如果您从另一个文件中需要它,则将使用内存中的缓存版本,而不是再次读取该文件。另一方面,如果您使用 fs.readFile,则每次使用此方法时都会读取该文件。
标签: node.js