現在の私のワークフローは次のとおりです。
ボタン クリック イベントで、検索結果が .csv ファイルにエクスポートされ、サーバーに保存されます。ファイルが保存されたら、ダウンロード用にブラウザに送信したいと思います。この質問How to handle conditional file downloads in meteor.jsを使用して、ファイルを保存するメソッドが戻った後に呼び出されるメソッドを作成しました。その方法は次のとおりです。
exportFiles: function(file_to_export) {
console.log("to export = "+file_to_export);
Meteor.Router.add('/export', 'GET', function() {
console.log('send '+file_to_export+' to browser');
return [200,
{
'Content-type': 'text/plain',
'Content-Disposition': "attachment; filename=" + this.request.query.file
}, fs.readFileSync( save_path + this.request.query.file )];
});
}
しかし、私の質問は、そのルートを呼び出す方法ですか? を使用.Router.to('/export?file=filename.ext')
しても機能せず、ユーザーは現在のページから離れてしまいます。これをユーザーにシームレスに見せたいのですが、リダイレクトされていることをユーザーに知られたくないのです。誰かが尋ねる前save_path
に、メソッドの外部で宣言されているため、存在します。