Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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
node.js,mongoose-findOne({u id:req.params.id})不';行不通_Node.js_Mongodb - Fatal编程技术网

node.js,mongoose-findOne({u id:req.params.id})不';行不通

node.js,mongoose-findOne({u id:req.params.id})不';行不通,node.js,mongodb,Node.js,Mongodb,我正在做这个练习 findOne()不起作用: app.get('/api/products/:id', (req, res, next) => { console.log('Product.findOne({ id:'+req.params.id+'}) :' ); Product.findOne({ _id: req.params.id }) .then(product => { console.log("\nprod =\n"+js

我正在做这个练习

findOne()不起作用:

app.get('/api/products/:id', (req, res, next) => {  
  console.log('Product.findOne({ id:'+req.params.id+'}) :' );
  Product.findOne({ _id: req.params.id })  
    .then(product  => { console.log("\nprod =\n"+json({product})); res.status(200).json({product})} ) 
    .catch(error   => { console.log('error here');                 res.status(404).json({ error })} );
});
我的后端服务器在终端中显示:

其他两条路线工作正常:

这些项目确实在数据库中:

我试图用FindById()替换findOne()。
我是一个初学者,一直在努力寻找解决方案,但没有任何帮助。

问题

您正在尝试将字符串与ObjectId进行比较

解决方案


你可以做这样的事情来让它工作

app.get('/api/products/:id', (req, res, next) => {  
  Product.findOne({_id: req.params.id })
  .then(product => {
     console.log(product) //To check the value we got from query
     res.status(200).json({product})
  })
.catch(err => {
   console.log(err)
})
});

非常感谢,这不会改变什么。我不知道是否可以将asnap shop附加到我的评论中,但它给出了相同的答案。非常感谢,它在console.log(result)//中显示了正确的结果以检查我们从查询中获得的值,但程序仍然不起作用。您期望的输出是什么?我已经更新了ode,尝试过一次,非常感谢,信息技术works@ChessClub你能投票并打分吗
app.get('/api/products/:id', (req, res, next) => {  
  Product.findOne({_id: req.params.id })
  .then(product => {
     console.log(product) //To check the value we got from query
     res.status(200).json({product})
  })
.catch(err => {
   console.log(err)
})
});