2011-08-23 8 views
146

私のJavaScriptソースファイルと同じディレクトリにあるJavaScriptコードにいくつかのJSONファイルを含めたいと思います。node.jsにjsonが必要です

別のJavaScriptファイルを含める場合は、単にrequireを使用します。 今私はreadFileSync__dirnameを使ってJSONを取得していますが、これは醜い方法です。

JSONファイルをロードするためにrequireと似たものがありますか?

+0

この類似の質問を参照してください:http://stackoverflow.com/questions/4662851/how-do-you-import-non-node-js-files – holygeek

+0

@coen「JSONファイルを含める」とはどういう意味ですか?それを読んで解析しますか?はいの場合、可能な複製:http://stackoverflow.com/questions/5726729/how-to-parse-json-using-nodejs –

+2

はい;読んで解析する。しかし、これは特にjsファイルを読むのと同じように*ファイル*を読み込んでいるので、重複していないので、goatslackerの答えはまだ有効です。 – coen

答えて

285

のようなJSONファイルをJSファイルで、あなたの設定を記述し

などの既存のライブラリを使用します.xはい、jsファイルと同じようにJSONを要求できます。 ES6で

var someObject = require('./somefile.json')

import someObject from ('./somefile.json')

+1

これは本当ですか?それは私のために働いていない、そして、https://github.com/joyent/node/issues/1357とhttps://github.com/joyent/node/pull/584は、そうすべきではないと示唆している。 – user161642

+0

これらの2つのチケットは1歳と2歳です。 JSON requireがノード0.5に追加されました。 – goatslacker

+10

ファイルが同じディレクトリにあると仮定してrequire( './ somefile.json')を使用する必要があります(ドットとスラッシュに注意してください)。 –

13

No. readFileまたはreadFileSync(起動時にのみ後者です)。

または代わりにノードV0.5のとしてではなく、その後

module.exports = { 
    // json 
} 
+0

cjsonは絶対パスだけを処理しますが、そうですか? – coen

+1

@coenはい、相対パスを作るのに常に '__dirname'を使います。 – Raynos

+1

または 'return {foo: 'bar'}' – William

10

JSONファイルは、明示的な輸出文を必要としません。 Javascriptファイルとして使用するためにエクスポートする必要はありません。

有効なJSONドキュメントにはrequireを使用できます。

関連する問題