我一直对这个问题猛撞我的头,现在有一天。即使在这里发布了两个关于特定软件包的问题(iron-router,Restivus),但我还没有成功。我的情况是这样的:我有一个Meteor JS应用程序,它必须接收http POST调用来在它的MongoDB数据库中插入一条记录,但是我一直无法通过MeteorJS和世界其他地方之间的连接。如何创建一个REST风格的MeteorJS应用程序
我已经尝试过铁路由器,Restivus,并且在几个小时前,Picker。我遵循Meteorpedia上的REST API例子,没有任何优点。
使用Restivus,我得到了下面的代码:
if(Meteor.isServer){
//Must exist, but all options can be empty
Restivus.configure({
});
//Allow Restivus to manage Reports
Restivus.addCollection('reports', {
routeOptions: {},
});
console.log("Inside 'isServer'");
Restivus.addRoute('reports/:message', {
// POST
post: {
action: function(){
console.log("Got to post!");
var response = null;
var message = this.urlParams.message;
if(message){
console.log("Message received: " + message);
return {status: "success", data: message};
} else {
console.log("Message empty...");
return {status: "fail", message: "Post not found"};
}
//Response to caller
return;
}
}
});
}
而且随着选择器,我得到这个:
if(Meteor.isServer){
Picker.route('/newReport/:message'), function(params, req, res, rext){
if(req.method == "POST")
console.log("Got a POST");
else
console.log("Not a POST");
res.end("Returned");
}
}
在这两个尝试,我一个GET呼叫时得到相同的结果。我总是得到什么似乎是完整的<head>
空的模板的HTML代码,但空的<body>
标签。当我尝试GET和POST方法到webapp中的任何路径时,我会得到相同的结果。
由于错误是在这两种情况下是相同的,我在我的路由的一个点假设:我将我的错误,所以在这里遵循的server/router.js
休息:
Router.configure({
layoutTemplate: 'layout',
notFoundTemplate: 'notFound',
waitOn: function(){
return [Meteor.subscribe('reports')]
}
});
//Page of the report
Router.route('/report/:message', {
name: 'reportPage',
data: function(){
return Reports.findOne(this.params.message);
}
})
Router.route('/', {
name: 'reportList'
});
<<REST code goes here>>
我怀疑,在一个点路由器正在发送一个空白页面,但我在路由器信息中看不到任何暗示的内容。
我甚至试图做一个if/else语句来区分客户端和服务器中的所有内容,但它没有区别。我会尽量保持更新为继续测试。
预先感谢您!
注意:我使用curl,我做的小Ruby脚本和REST控制台尝试了GET和POST方法。结果在所有3个实例中都是相同的。
您是否检查了https://github.com/stubailo/meteor-rest/? – Delgermurun
我见过它,但我没有尝试过。老实说,我对它的工作原理有些困惑,并且找不到它的一个工作示例。 –
我在这里留下评论,解释你的Restivus实现有什么问题:http://stackoverflow.com/questions/30581774/configuring-restivus-post-method-for-meteor。对不起,您在Meteor获得您的REST API设置时遇到了很多困难。你最终使用了什么? – kahmali