ファイルがあり、その構造は次のようになります。
({
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()
代わりは。