javascript - findOne 在 Nodejs 中发送 NULL
问题描述
我想使用 findOne 在我的数据库中呈现产品。我得到了在我的 url 中传递的 id,以通过它的 id 来查找产品。
然而,我得到null
了结果。
这是我的server.js
文件。
app.get('/boutique/:id', (request, reponse) => {
mongo.connect(url, function (err, db) {
var dbo = db.db("pool");
var cherche_id = request.params.id;
dbo.collection("products").findOne({id : cherche_id}, function(err, result) {
if (err) throw err;
console.log(result);
reponse.render('boutique_id');
db.close();
});
});
});
如果我像这样更改我的 findOne ,它也可以工作:
findOne({id : 2},
解决方案
request.params.id
是一个字符串,而id
数据库中的字段是一个数字。MongoDB 首先比较类型,所以"2"
不等于2
. 您需要先将值转换为数字:
var cherche_id = +request.params.id;
编辑:在这种情况下,一元加运算符将字符串转换为数字
推荐阅读
- php - 解析 csv 数据 php 中的问题 | 正则表达式替换引号内的逗号
- javascript - 如何只点击标题的文本而不是右边的空白?
- machine-learning - 如何使用 Pytorch 创建最后一层正确编写的自定义 EfficientNet
- javascript - 有没有办法让 SVG className 向后兼容?
- r - 使用公式时来自 deparse() 的 R Vioplot 错误
- python - py4j.protocol.Py4JError: 调用 o112.save 时出错
- c - 如何创建指向二维字符数组的指针,然后打印输出
- javascript - 在 VSC 中打开文件夹时,我可以选择是替换当前窗口还是在新窗口中打开文件夹?
- c# - C# - 将刻度数据存储到 OHLC 蜡烛中:值没有随机更新,多线程问题?
- python - 是否可以使用列表理解转换代码