ロードしたいdata.jsonファイルがあり、lib /フォルダーに配置しました。そのJSONをサーバーの変数にロードするにはどうすればよいですか?ありがとう
これを行うには3つの方法がありますが、それは最も快適なものとユースケースによって異なります。
最初はJSオブジェクトとして保存することです
jSONデータが{ "name":"bob" }
の場合、myjson = {"name":"bob"}
フォルダー内の.js
ファイルで/lib
を使用し、必要なときにmyjson
を呼び出すことができます。
http呼び出しを使用
Meteor http
経由でインストールされたmeteor add http
パッケージが必要です。
サーバーサイドコード
myobject = HTTP.get(Meteor.absoluteUrl("/myfile.json")).data;
クライアントサイドコード
HTTP.get(Meteor.absoluteUrl("/myfile.json"), function(err,result) }
console.log(result.data);
});
それを行う別の方法は、jsonファイルのajaxスタイルを取得することです(ただし、/public
フォルダーに配置し、Meteor.http
を使用して呼び出す必要があります)。
ファイルを直接読む
最後に、ファイルを直接読み取ることができます。myfile.json
をプロジェクトのルートのprivate
ディレクトリに保存します。
var myjson = {};
myjson = JSON.parse(Assets.getText("myfile.json"));
クライアント側でこれにアクセスしたい場合は、Meteor.methodsおよびMeteor.callとインターフェースする必要があります。
どちらの方法でも、最初の方法が最も簡単ですが、どのように使用するのか、ファイルを選択するのか、何かを選択するのかはわかりません
私はこれにすべて慣れていないので、これは正しいの方法ではないと思うが、これは私のために働いた...
3つのコーヒースクリプトファイル、サーバーディレクトリに2つ:
server.coffee:
Meteor.startup ->
insertSample = (jsondata) ->
Fiber(->
Documents.insert
name: "Sample doc"
data: jsondata
).run()
if Documents.find().count() is 0
insertJSONfile("tests/test.json", insertSample)
およびinsertJSONfile.coffee:
fs = __meteor_bootstrap__.require("fs")
insertJSONfile = (file, insert) ->
jsondata = undefined
fs.readFile file, (err, data) ->
throw err if err
jsondata = JSON.stringify(JSON.parse(data))
insert(jsondata)
ルートディレクトリのmodel.coffee:
@Documents = new Meteor.Collection("documents")
起動時に、JSONファイル(私の場合はtestsディレクトリに保存しました)をロードし、ドキュメントコレクションのフィールドに挿入する必要があります。
これを適切に行う方法について他の人から聞きたいです。
Jsonコンテンツを単純な文字列としてではなくオブジェクトとして表現したいと思います。
Npmパッケージをインストールすると仮定して、js-yaml( https://github.com/nodeca/js-yaml )を使用します。手動でコピーすることもできます。
yaml = __meteor_bootstrap__.require('js-yaml')
fs = __meteor_bootstrap__.require('fs')
content = fs.readFileSync(file, 'utf8')
object = yaml.load(content)
以上です!私は個人的にjsonを流星コレクションに保持しています。