我正在尝试使用express作为后端按其id获取mongodb文档。每当我提出路由请求时,findOne&populate查询都会返回相同的文档。我想通过ID返回患者数据。任何人都可以帮助我我是JavaScript新手。
// @ route GET api/profile/patient/:patientId
// @ desc Get patient by patientId
// @ access Private
router.get('/:patient_id', auth, async (req, res) => {
try {
const patient_profile = await Patient.findOne({
patient: req.params._id
}).populate('patient');
//console.log(patient);
console.log(patient_profile);
if (!patient_profile) return res.status(400).json({ msg: 'Patient not found' });
res.json(patient_profile);
} catch (err) {
console.error(err.message);
if (err.kind == 'ObjectId') {
return res.status(400).json({ msg: 'Profile not found' });
}
res.status(500).send('Server Error');
}
});
module.exports=router;
答案 0 :(得分:-1)
要访问请求参数上的ID,请使用下面的代码...
req.params.patient_id
您的错误是
req.params._id