【发布时间】:2020-11-28 03:57:01
【问题描述】:
有问题的堆栈:Node、EJS、Mongo、Mongoose
我的路由是这样设置的:
app.get('/products', async (req,res) => {
const products= await Product.find({});
res.render('products/index', {products});
})
app.get('/products/:id', async (req,res) =>{
const {id} = req.params;
const product = await Product.findById(id);
res.render('products/show', {product});
})
app.get('/products/new', (req,res)=>{
res.render('products/new');
})
我收到了这个错误:
CastError: Cast to ObjectId failed for value "new" at path "_id" for model "Product"
我最终通过将 /new 路由移到 /:id 路由上方来修复错误。
我的问题是:为什么要解决它?我没有在 /new 路由中调用 {id}。除了 res.render 中的 EJS 文件之外,/new 路由没有调用任何东西。我在互联网上找不到任何理由为什么在代码中将路线移到更高的位置来解决问题。
【问题讨论】: