我正在为项目使用示例MongoDB数据库,而在使用findById猫鼬方法时,出现错误:'CastError:模型“公司”的路径“ _id”的值“ ...”的对象ID转换失败'。我正在使用把手作为视图引擎。
中间件文件:
getCompanyData: async (req, res, next) => {
// Queries
const information =
"name ipo founded_day founded_month founded_year description overview relationships";
// try {
const getCompanyData = await Companies.findById(req.params.id, information).exec();
console.log(getCompanyData);
// Coverting Mongoose Document to Object
const companyData = getCompanyData.toObject()
// console.log(companyData);
这是路线文件
// Company Route
router.get('/list/:id', getCompanyData, (req, res) => {
// console.log(req.companyData.name);
res.render('company', {
comapany: req.companyData
})
})
答案 0 :(得分:1)
如果您遇到的情况与我之前遇到的相同...这是由您的路由代码的顺序引起的。确保在您放置的路线上使用参数
// Company Route
router.get('/list/:id', getCompanyData, (req, res) => {
// console.log(req.companyData.name);
res.render('company', {
company: req.companyData
})
})
一直到代码的底部...因为假设您有另一条路线 /list/profile...它会给您那个错误,因为 profile 不是 objectId。