JavaScript 初心者です。
下記エラーが表示されていますが、
エラー対応をググりましたが、初心者なためどこが根本的原因なのか分かりませんでした。
確認すべき箇所をご指摘頂けますと幸いです。
[出力されているエラー]
throw er; // Unhandled 'error' event
TypeError: Cannot set property 'products' of undefined
エラーの該当行
res.locals.data.products = foundProducts
TypeErrorとなっているファイル↓
JavaScript
1const Product = require('../models/product') 2const dataController = { 3 index(req, res, next){ 4 Product.find({}, (err, foundProducts) => { 5 if(err){ 6 res.status(404).send({ 7 msg: err.message 8 }) 9 } else { 10 res.locals.data.products = foundProducts 11 next() 12 } 13 }) 14 }, 15 show(req, res, next){ 16 Product.findById(req.params.id, (err, foundProduct) => { 17 if(err){ 18 res.status(404).send({ 19 msg: err.message 20 }) 21 } else { 22 res.locals.data.product = foundProduct; 23 next(); 24 } 25 }) 26 }, 27 create(req, res, next){ 28 Product.create(req.body, (err, createdProduct) => { 29 if(err){ 30 res.status(404).send({ 31 msg: err.message 32 }) 33 } else { 34 res.locals.data.product = createdProduct; 35 next(); 36 } 37 }) 38 }, 39 buy(req, res, next){ 40 Product.findByIdAndUpdate(req.params.id, { $inc: {qty: -1} }, (err, updatedQty)=>{ 41 if(err){ 42 res.status(404).send({ 43 msg: err.message 44 }) 45 } else { 46 res.locals.data.qty = updatedQty; 47 next() 48 } 49 }) 50 }, 51 destroy(req, res, next){ 52 Product.findByIdAndDelete(req.params.id, (err, deletedProduct) => { 53 if(err){ 54 res.status(404).send({ 55 msg: err.message 56 }) 57 } else { 58 res.locals.data.product = deletedProduct; 59 next(); 60 } 61 }) 62 }, 63 update(req, res, next){ 64 Product.findByIdAndUpdate(req.params.id, req.body, { new: true}, (err, updateProduct) => { 65 if(err){ 66 res.status(404).send({ 67 msg: err.message 68 }) 69 } else { 70 res.locals.data.product = updateProduct; 71 next(); 72 } 73 }) 74 } 75} 76 77module.exports = dataController; 78 79
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/06 08:24