后端 HTTP server提供一个下载接口,但是需要前端 Meteor 能够给浏览器用户开一个URL来下载这个文件。javascript
举例:在线的Meteor Logo文件就比如后端提供的 RESTful API,而后咱们给浏览器客户暴露一个 URL 来下载前端
安装所有依赖:java
meteor add http meteor add cfs:http-methods meteor add froatsnook:request
说明:
* cfs:http-methods * 用来给Meteor项目提供一个方便建立 RESTful API 的机会。很方便。后端
here for details.浏览器
* froatsnook:request * 用来给Meteor项目提供一个便利訪问二进制数据的 RESTful API 的机会,也是很简洁方便。支持同步请求。bash
here for details.markdown
if (Meteor.isServer) {
// exports a RESTful API for browser
HTTP.methods({
// name RESTful API as "GET /download-meteor-logo"
'/download-meteor-logo': function() {
// A file in streaming, so need to response to browser as a streaming.
var res = this.createWriteStream();
// Play as a HTTP client for requesting image.
// It is Sync way
var result = request.getSync("https://meteor.com/meteor-logo.png", {
encoding: null
});
var buffer = result.body;
// TODO: need to set header for response here which transfered by
// response of logo request.
res.write(buffer);
res.end();
}
});
} // Meteor.isServer enclosure
meteor --port 3000