node.js,mongoose-findOne({u id:req.params.id})不';行不通
我正在做这个练习 findOne()不起作用: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
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)
})
});