求助,req.params 的问题
发布于 10 年前 作者 Giskardxx 4123 次浏览 最后一次编辑是 8 年前

routes 中的 exports.detailres.render('detail',{product:req.params.product}); 然后路由配置 app.get('/detail/:product',routes.detail); 最后在 EJS 中 <% =product.name%> 为什么不行呢? 显示 null

5 回复

试试 <%=locals.product.name %> ??

还是没有显示,不知道是不是其他地方出错了,可以帮忙看下么? app.js中 ‘’‘app.get(’/detail/:product’,routes.detail);

index.js中 exports.detail = function(req, res){ Product.getOne(req.params.product,function(err,product){ Comment.get(req.params.product, function(err, comments) { if (err) { comments = []; } res.render(‘detail’, { title: ‘商品详情’, comments : comments, product : product, user : req.session.user, staff: req.session.staff, success : req.flash(‘success’).toString(), error : req.flash(‘error’).toString() }); }); }); };

detail.ejs中 <p><%=.product.name %></p> <p><%=.product.price %></p>

麻烦了!

你打印一下你的 product 看看,是什么?

你访问/detail/dell, 那么你的req.params.product就是dell dell是个字符串,你要显示 dell.name ???

他用Product.getOne()得到了一个结果: product

回到顶部