所以我有meteor运行,我希望公开一个REST API。我决定选择restivus,因为它看起来更清洁,更灵活。
所以我的基本代码是:
if (Meteor.isServer) {
Meteor.startup(function () {
// Sensors = new Meteor.Collection('sensor');
Restivus.configure({
useAuth: false,
prettyJson: false
});
Restivus.addCollection("sensor", {
defaultOptions: {},
});
});
}
我可以使用以下方式查询:
$ curl -X GET http://localhost:3000/api/sensor
{"status":"success","data":[{"_id":{"_str":"00000000236668afaf952dee"},"ts":1424246899,"temp":28,"humidity":33}]}
嗯...所以'_id'我手动输入(而不是让mongo为我设置)在输出中看起来有点奇怪;但好吧,我猜这是一个ObjectId()
。然而,当我开始使用GET时,它失败了:
$ curl -X GET http://localhost:3000/api/sensor/00000000236668afaf952dee
{“status”:“失败”,“消息”:“找不到项目”}
我做错了什么?
答案 0 :(得分:1)
看起来_id实际上是一个对象{"_str":"0000....52dee"}
,而不是简单的字符串"0000....52dee"
。问题很可能出在保存_id的代码中。它看起来应该是{"_id" : "rdSRTTz5RL5JjQy3G"}
。