我正在尝试使用 find 函数从 mLab 中的数据库获取数据。我写了这段代码,但我得到一个空字符串。 我的模式有 ID、姓名、类(class)和年级。 当我想要名称的文件而不是 id 的文件时,它对我有用。我猜这是因为 mLab 添加了额外的 _id 文件。 如何修复它以获取适合 id 的 JSON(假设 id=1)?
app.get('/getStudentById/:id', function(req, res) { //else if url path is getStudGrade with id param
Stud.find({id:req.params.id}, function(err, user){
if(err) throw err;
res.json(user);
mongoose.disconnect();
});
})
<小时/>
新编辑
我已将数据库中的归档“id”更改为“idStudent”,现在它可以工作了。
Stud.find({ idStudent: req.params.id)}...)
但为什么呢?
最佳答案
因此,假设 req.params.id
实际上有一个值,并且 /getAll
显示您的所有记录都设置了 id
字段,唯一让我想到的是,您将 string
与 Number
进行比较,即 req.params.id
将是一个字符串反序列化后,但您的架构规定 id
字段是数字。
我不确定 mongoose 是否使用强制比较,即 ==
超过 ===
(我对此表示怀疑),因此为了更准确,您应该解析您的字符串到 Number
然后进行比较,例如
Stud.find({ id: parseInt(req.params.id)}, ...)
关于javascript - 通过参数查找node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37206128/