2017-06-04 42 views
0

我的开发工作自动对焦的平均应用程序,我有一个奇怪的问题:蒙戈DB REST API返回八方通相同的条目

我已经创建了一个API,它使我的ID来获得一个单一文件:

//Get Single Line 
router.get('/lines/:id', function(req, res, next){ 
    db.lines.findOne(
     { _id: mongojs.ObjectId(req.params.id)}, 
     function(err, line){ 
     if(err){ 
      res.send(err); 
     } 
     res.json(line); 
    }); 
}); 

现在,当我打电话http://localhost:3000/api/lines/593379eb0cbd3a4efcdc1875我得到了我期望:

{"_id":"593379eb0cbd3a4efcdc1875","name":... 

但是,当我提出这个项目到实时服务器,当我打电话http://mydomain/api/lines/593379eb0cbd3a4efcdc1875我拿到永诺在我的收藏中的第一个文件:

{"_id":"59337c480cbd3a4efcdc1876","name": 

即使我尝试一些不存在的id - 我总是只得到第一个文档。 我真的不知道,这里的probem是什么......

回答

0

你试过调试代码来找到正确的_id传递给控制器​​和查询吗?重新检查与您的存储库相匹配的数据库名称和集合名称,以用于本地和现场环境。

+0

谢谢您的回答!我已经检查过是否传递了正确的_id,并且两个环境(开发和实时)都连接到同一个数据库。对于我看来,findOne函数出于某种原因返回集合中的第一个文档 – Stanislav

+0

这是怎么回事? 我无法找到任何线索。你可以尝试{'_id':mongojs.ObjectId(req.params.id)}。 _id在引号内。只是试试..! –