对于没有 .json 扩展名的 json 文件,nodejs 是否支持 "require"
Does nodejs support "require" for a json file without .json extension
在节点 5.0 中是否有 require
的语法,它将文件识别为 json 而没有 .json 扩展名??
例如,我希望能够使用这样的 require 语句读取 .bowerrc 文件(json 文件)。
var bowerrc = require("./.bowerrc");
但节点抛出令牌错误,因为它认为它是 javascript 而不是 json 文件。
如果我暂时将 .bowerrc 更改为 .bowerrc.json(以及文件名),那么一切都很好,所以我知道这就是正在发生的事情。
我看到有一个支持 json!nameofile
的浏览器的 requirejs 插件,但它在 node 中不起作用。
不,如果没有正确的文件扩展名,就无法使 require()
将其视为 JSON。
相反,您只需要自己读取文件并进行解析。
这是 node.js 文档中的相关部分:
.js files are interpreted as JavaScript text files, and .json files
are parsed as JSON text files. .node files are interpreted as compiled
addon modules loaded with dlopen.
LOAD_AS_FILE(X)
- If X is a file, load X as JavaScript text. STOP
- If X.js is a file, load X.js as JavaScript text. STOP
- If X.json is a file, parse X.json to a JavaScript Object. STOP
- If X.node is a file, load X.node as binary addon. STOP
您可以制作自己的 JSON 加载器:
function loadJSON(file) {
var data = fs.readFileSync(file);
return JSON.parse(data);
}
在节点 5.0 中是否有 require
的语法,它将文件识别为 json 而没有 .json 扩展名??
例如,我希望能够使用这样的 require 语句读取 .bowerrc 文件(json 文件)。
var bowerrc = require("./.bowerrc");
但节点抛出令牌错误,因为它认为它是 javascript 而不是 json 文件。
如果我暂时将 .bowerrc 更改为 .bowerrc.json(以及文件名),那么一切都很好,所以我知道这就是正在发生的事情。
我看到有一个支持 json!nameofile
的浏览器的 requirejs 插件,但它在 node 中不起作用。
不,如果没有正确的文件扩展名,就无法使 require()
将其视为 JSON。
相反,您只需要自己读取文件并进行解析。
这是 node.js 文档中的相关部分:
.js files are interpreted as JavaScript text files, and .json files are parsed as JSON text files. .node files are interpreted as compiled addon modules loaded with dlopen.
LOAD_AS_FILE(X)
- If X is a file, load X as JavaScript text. STOP
- If X.js is a file, load X.js as JavaScript text. STOP
- If X.json is a file, parse X.json to a JavaScript Object. STOP
- If X.node is a file, load X.node as binary addon. STOP
您可以制作自己的 JSON 加载器:
function loadJSON(file) {
var data = fs.readFileSync(file);
return JSON.parse(data);
}