router.get("/:category/:product",(req,res,next)=>{
var galleryImages=null;
Products.findOne({title:req.params.product},function(err,product){
if(err){
console.log(err)
}else{
var galleryDir="public/dyqani/product_images/"+product._id+"/gallery";
fs.readdir(galleryDir,function(err,files){
if(err){
console.log(err)
}else{
galleryImages=files;
res.render("./dyqani/store/products",{
title:product.title,
p:product,
galleryImages:galleryImages
});
}
});
}
});
});当我试图打开页面时,它显示了这个错误:无法读取null的属性_id,请帮助我?当我制作console.log(产品)时;
{味道: 5adafbff2eb0e211107c737b,_id: 5ada72c56c0beb1c58c307f0,title:'sss',slug:'sss',desc:‘纯度高于一切\r\n\r\nIso乳清零是用最纯的交叉流动微滤乳清蛋白分离而成的,同时它真正含有零乳糖,零反式脂肪和零添加糖。与所有BioTechUSA产品一样,BioTech ZERO乳清由100%安全、精心挑选的营养素组成。\r\n\r\n有些人喜欢它\r\n\r\n蛋白质的极高生物学价值使其在Iso美国产品线中独一无二。它非常适合那些致力于获得超瘦肌肉的运动员,因为蛋白质有助于肌肉质量的增长和肌肉的维护。\r\n\r\n当我们说零的时候,我们指的是零\r\n\r\n这是真的: Iso乳清零含有零反式脂肪和零添加的糖。没有无用的或隐藏的营养物质,可以储存在身体的脂肪。每一份仅含22克纯肌肉构建蛋白。\r\n\r\n高支链氨基酸,L-谷氨酰胺,EAAs\r\n\r\n精心挑选的蛋白质来源制造,Iso Whey的氨基酸谱对于真正的肌肉生长是完美的。它富含支链氨基酸和必需氨基酸以及最重要的氨基酸L-谷氨酰胺,旨在建立瘦肌肉质量“,价格: 70,类别:‘预锻炼’,图片:‘动机4.jpg’,__v: 1}
空
events.js:183抛出er;//未处理的'error‘事件^
TypeError:无法在立即数处的C:\Users\User\Desktop\mm\bb\routes\dyqani\products.js:54:53处读取null的属性“”_id“”。“”(C:\Users\User\Desktop\mm\bb\node_modules\mongoose\lib\query.js:1516:14) at Immediate._onImmediate (C:\Users\User\Desktop\mm\bb\node_modules\mquery\lib\utils.js:119:16) at runCallback (timers.js:789:20) at tryOnImmediate (timers.js:751:5) at processImmediate as _immediateCallback节点应用程序崩溃-正在等待文件更改后再启动..
发布于 2018-04-21 10:21:11
问题出在线路上:
var galleryDir="public/dyqani/product_images/"+product._id+"/gallery";因为查询Products.findOne({title:req.params.product}返回null,所以变量product为null。
检查req.params.product是否包含任何值,以及数据库中是否存在id等于参数的Product的元组。
https://stackoverflow.com/questions/49951081
复制相似问题