我有一个文件,它的结构是这样的:
({
foo: 'bar',
bar: 'foo'
})
我正在尝试加载和读取文件,NodeJS以便我可以将其object作为变量;最好的方法是什么?请注意,我无法更改文件的结构。
我有一个文件,它的结构是这样的:
({
foo: 'bar',
bar: 'foo'
})
我正在尝试加载和读取文件,NodeJS以便我可以将其object作为变量;最好的方法是什么?请注意,我无法更改文件的结构。
您可以将文件读入一个字符串和eval该字符串:
var fs = require('fs');
var s = fs.readFileSync('myfile.js', 'utf8');
var x = eval(s);
s如有必要,您可以在调用之前修改字符串eval。
我必须同意mtsr的观点,即使用的解决方案JSON.parse更好(无论是在安全性方面还是在性能方面)。但是,由于对象文字周围有额外的括号,当前数据文件不代表 JSON 结构。
如果您确定对象文字{..}总是被一(..)对包围,您可以删除它们,然后尝试解析字符串:
m = s.match(/\(([\s\S]+)\)/);
x = JSON.parse(m[1]);
正则表达式的[\s\S]+部分匹配任何内容,包括换行符。\(and\)部分匹配周围的括号。
我会避免评估。尝试
JSON.parse()
反而。