Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js在dpd.get&;上部署了404错误;使用id参数时dpd.put上出现400错误_Javascript_Node.js_Http Status Code 404_Http Status Code 400_Deployd - Fatal编程技术网

Javascript Node.js在dpd.get&;上部署了404错误;使用id参数时dpd.put上出现400错误

Javascript Node.js在dpd.get&;上部署了404错误;使用id参数时dpd.put上出现400错误,javascript,node.js,http-status-code-404,http-status-code-400,deployd,Javascript,Node.js,Http Status Code 404,Http Status Code 400,Deployd,基本上是标题所说的——我在为“id”输入的所有id上都找不到404: 以及对任何“id”值的400错误请求: 所有id值都存在于已部署的仪表板中,我可以使用id以外的任何类别参数发出get请求 感觉我已经尝试了所有的方法,请帮忙 已部署创建任何集合的crud API 确保集合名称正确并尝试使用 .. 如果这也将给出404,则打开 在dashboard上转到dashboard/items/events/这将在GET面板上打开,在那里写入console.log(this.query) 在大约400

基本上是标题所说的——我在为“id”输入的所有id上都找不到404:

以及对任何“id”值的400错误请求:

所有id值都存在于已部署的仪表板中,我可以使用id以外的任何类别参数发出get请求


感觉我已经尝试了所有的方法,请帮忙

已部署创建任何集合的crud API
确保集合名称正确并尝试使用
.. 如果这也将给出404,则打开

在dashboard上转到dashboard/items/events/这将在GET面板上打开,在那里写入console.log(this.query)

在大约400个请求中,您在上编写代码console.log(this.body)


这是调试API的方法,部署的API有一些问题,但立即创建API的框架更好

如果您通过不同于部署的客户端插入文档,则会发生此错误

发件人:

如果未指定_id字段,MongoDB将ObjectId用作_id字段的默认值。。。如果客户端没有添加_id字段,mongod将添加一个包含ObjectId的_id字段

尽管mongoDB创建的ID在deployd仪表板中可见,但它们不是普通字符串(与deployd生成的ID类似),deployd在查找字符串时找不到它们

尝试对任何其他mongoDB客户端(例如)运行如下查询:

如果它没有抛出错误,则id很可能是一个ObjectId,它不是由deployd创建的

不幸的是,没有简单的解决办法。(至少不适用于大型收藏和复杂应用。) 对于小型集合,我建议将数据复制到一个新集合中,并让部署人员创建新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);
            };
        })
    });
})

你必须自己决定这是否适合你。

Yes“还提供了一个404。控制台记录这个:导航到dpd.js:61 GET 404(未找到)dpd.js:61 GET 404(未找到)这个记录查询{id:'301'}这应该有效,因为有一个id为301的记录,但我仍然得到一个404。您在集合中有数据吗?如果有404表示您使用了错误的集合名称是的,我在仪表板中显示的/items中有数据。dpd.items.get在我使用“id”以外的参数时有效,这就是令人困惑的地方。事实上,这就是问题所在,我是从csv导入数据的。通过导入w/o ID可以解决此问题。
dpd.items.put("id",{category:value},function(results, error){
 console.log("Record updated");
});
db.yourcollection.find({_id: ObjectId("some_id_you_know_exists_in_collection")})
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);
            };
        })
    });
})