Node.js 在使用 id 参数时在 dpd.get 上部署 404 错误,在 dpd.put 上部署 400 错误
Node.js Deployd 404 error on dpd.get & 400 error on dpd.put when using id parameter
基本上标题所说的 - 我在为"id"输入的所有 id 上都得到了 404 未找到:
dpd.items.get("id", function(results, error) {
console.log(results);
});
以及任何值"id"的 400 错误请求:
dpd.items.put("id",{category:value},function(results, error){
console.log("Record updated");
});
所有 id 值都存在于已部署的仪表板中,我能够使用 ID 以外的任何类别参数发出 get 请求。
感觉我已经尝试了一切,请帮忙!
如果通过与部署的客户端不同的客户端插入文档,则可能会发生此错误。
从这里:
MongoDB使用ObjectIds作为_id字段的默认值,如果未指定_id字段...如果客户端不添加_id字段,mongod 将添加一个包含 ObjectId 的_id字段。
尽管 mongoDB 创建的 ID 在部署的仪表板中可见,但它们不是普通字符串(如部署生成的 ID),并且 deployd 在查找字符串时找不到它们。
尝试使用任何其他mongoDB客户端(例如Robomongo)运行如下所示的查询:
db.yourcollection.find({_id: ObjectId("some_id_you_know_exists_in_collection")})
如果未引发错误,则 id 很可能是不是由 deploy 创建的 ObjectId。
不幸的是,没有简单的解决办法。(至少对于大型集合和复杂的应用程序而言,并非如此。对于小型集合,我建议将数据复制到新集合中,并让部署创建新 ID。
快速、肮脏且未经测试:
dpd.collection.get({}, function(res) {
_.each(res, function(object){
object.oldId = object.id //add id backup
delete object.id
// post new object without id -> deployd creates a new id
dpd.newcollection.post(object, function(res, err) {
if(err) {
console.log(err);
};
if(res) {
console.log(res);
};
})
});
})
你必须自己决定这是否适合你。
部署创建任何集合的 crud API。
确保集合名称正确 尝试使用
http://localhost:PORT/items/id ..如果这也将给出 404,则打开
http://localhost:PORT/dashboard/items/events/
和在仪表板上转到仪表板/项目/事件/这将在 GET 面板上打开,写在那里控制台.log(this.query)
和大约 400 个请求,你写代码控制台.log(this.body) 上http://localhost:PORT/dashboard/items/events/#put-panel
这是调试 API 的方法,部署有一些问题,但更好的框架可以立即创建 API
- 部署时使用npm包时发生Meteor错误
- 当前 Play 应用程序的 Heroku 部署错误
- 仅在部署时出现流星铁路由器初始屏幕错误
- 在本地部署脚本时收到错误
- Node.js 在使用 id 参数时在 dpd.get 上部署 404 错误,在 dpd.put 上部署 400 错误
- 解析云代码部署失败,并显示消息“更新失败,出现内部错误”
- “引用错误:未定义压缩”时将 Node.js 应用程序部署到 Heroku
- 流星:错误:ENOTEMPTY:部署到模数时目录不为空
- node.js的libxmljs出现Azure部署错误
- 在IIS服务器上部署时出现JavaScript运行时错误
- Rails-heroku部署jquery和css错误,在本地设置amazons3变量
- 将Node.js应用程序部署到heroku时出现Async.times错误(重复循环)
- Meteor:部署错误,MailChimp未定义
- 正在尝试部署Meteor应用程序--mup设置错误
- 使用node.js时Heroku部署错误
- 部署到Openshift后出现Websocket错误
- 在heroku中部署HTML应用程序时出现构建错误
- Angularjs的HTTP POST调用在部署中验证登录失败-返回400错误
- Visual studio 11 javascript metro应用部署错误
- Heroku部署错误:无法获得运行后的Node应用程序部署:无法找到模块'/ App /web.js'