やりたいこと:アクセス時にファイルのダウンロードを開始するルートを ( iron-routerで) 指定します。このファイルには、アプリケーション mongo-Databases からの情報が含まれています。
ユースケース: Android アプリとしてもエクスポートされるmeteorオフラインWeb アプリケーションを開発しています。アプリ内で、ユーザーはいくつかの異なるデータ/情報を保存できます。ユーザーは、アプリ内からそのデータをエクスポートおよびインポートできる必要があります (たとえば、デバイスを切り替えたい場合)。 私の(この)アプローチとはまったく異なる解決策があるかもしれません。もちろん、私もそれに対してオープンです。
追加情報:私の mongo-Databases は、 groundDBを使用してローカル (クライアントのみ)です。meteor-application が android app として実行されているときにもソリューションが機能するなら、それは完璧でしょう。ファイルの実際の形式はマイナーです (csv / json / ... のようなもの)。
現在のアプローチ:
// Define route...
Router.route('/download', function(){
/**
* Combine data from different Mongo
* Collections in one js variable in JSON format:
**/
var dataToDownload = [];
dataToDownload[0] = Collection.find().fetch();
dataToDownload[1] = AnotherCollection.find().fetch();
/**
* Convert JSON to string for download (not sure
* if necessary?!):
**/
var data = "text/json;charset=utf-8,"
+ encodeURIComponent(JSON.stringify(dataToDownload));
/**
* This obviosly doesn't work since it's trying to
* render a template which has the name equal to
* my JSON string:
**/
this.render(data);
});
基本的に、sth に置き換えるものを探していthis.render(data);
ます。それは(疑似コードで)しthis.download(data);
ます。