我有以下Restivus配置:
if(Meteor.isServer){
Restivus.configure({
});
//Allow Restivus to manage Reports
Restivus.addCollection('reports');
Restivus.addRoute('newReport/:message', {}, {
// POST
post: {
action: function(){
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;
}
}
})
}
根据Restivus的解释,当我向http://localhost:3000/api/newReport/
拨打GET电话时,我应该得到一个" Get All"来自服务器的结果,在调用者身上。
但是,如果我在命令行上使用curl -X GET http://localhost:3000/api/newReport/
,我似乎在api / NewReport /获取网站的HTML代码(除了标题和空体之外是空的)
知道这一点,我知道我的错误是在Restivus Route配置中,但我无法确定原因。
预期的行为是,当我从Ruby脚本发出POST时,我应该收到一条返回的消息(Ok或Fail),在我的Meteor控制台中,我应该看到"收到消息"或"发布未找到" (两个占位符)。
补充问题,有没有办法在我们添加集合时禁用Restivus创建的默认GET方法?
答案 0 :(得分:2)
您必须在JavaScript部分中创建一个变量,并在Restivus.addCollection()调用中使用它。
Reports = Mongo.Collection('reports')
if(Meteor.isServer){
Restivus.configure({
});
//Allow Restivus to manage Reports
Restivus.addCollection(Reports);
...