【发布时间】:2021-10-28 15:31:37
【问题描述】:
我有一个循环,在每个元素旁边的表格中显示所有元素(产品)当我单击它时有一个编辑按钮,它应该将我重定向到编辑页面并显示所选元素的标题(产品)。但是,当它重定向我时,它会显示一个错误(“无法读取 null 的属性 'title')。
product.js
.
.
const mngoose = require("mongoose")
const productSchema = new mngoose.Schema({
title:{
type: String,
required: true
},
description: {
type: String,
required: true
}
})
let Product = mngoose.model('Product', productSchema, 'products');
module.exports = Product;
admin-routes.js
.
.
router.get('/showProducts', (req, res) => {
Product.find({},{},(err,products)=>{
let chunk = []
let chunkSize = 3
for(let i=0; i<products.length; i+=chunkSize){
chunk.push(products.slice(i, chunkSize+i))
}
res.render('admin/showProducts', {
chunk: chunk,
message: req.flash('info'),
})
})
})
router.get('/edit', (req, res) => {
Product.findOne({_id: req.params.id}, (err,product)=>{
if(!err){
res.render('admin/edit', {
product: product
})
}
})
})
.
.
showProducts.ejs
.
.
.
<tbody>
<% chunk.forEach((products)=>{%>
<tr>
<% products.forEach((product)=>{%>
<th scope="row">1</th>
<td><%= product.title %></td>
<td> <a class="btn btn-primary"
href="<%= '/shopAdmin/edit'%>" role="button">Edit</a> </td>
</tr>
</tbody>
<%})%>
<%})%>
edit.ejs
<%= product.title %>
错误信息:
【问题讨论】:
-
能否提供console.log(product)?
-
我添加了截图
-
你能在
admin-routes.js之后for和res.render之前添加console.log 吗?