最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

无法读取“ ID参数”的属性

运维笔记admin10浏览0评论

无法读取“ ID参数”的属性

无法读取“ ID参数”的属性

这是我导入了cart.js模型的Router的代码

var router = require('express').Router();
var Product = require('../models/products');
var Cart = require('../models/cart'); 

router.get('/add-to-cart/:_id',(req,res,next)=>{
  const productID = req.params._id;
  var cart = new Cart(req.session.cart ? req.session.cart : {});

  Product.findById(productID,(err,product)=>{
    if(err){
      res.redirect('/');
    }
    cart.add(product, product.id);
    req.session.cart = cart;
    res.redirect('/');
  })  
})

这是我的Cart.js代码

module.exports = function cart(oldCart){
   this.items = oldCart.items;
   this.totalQty = oldCart.totalQty;
   this.totalPrice = oldCart.totalPrice;

   this.add = function(item,id){
      var storedItem = this.items[id]; // Here is Problem
      if(!storedItem){
        storedItem = this.items[id] = {item: item, qty: 0, price: 0};
      }
      storedItem.qty++;
      storedItem.price = storedItem.item.price * storedItem.qty;
      this.totalQty++;
      this.totalPrice = storedItem.price;
   };

   this.generateArray = function(){
      var array = [];
      for (var id in this.items){
        array.push(this.items[id]);
      }
      return array;
   };
}

错误:

events.js:174投掷者//未处理的“错误”事件^

TypeError:无法读取未定义的属性'5d9182475f539435e81a7bb9'在cart.add(C:\ Users \ Manav \ Documents \ Github \ E_com_App \ models \ cart.js:7:36)在Product.findById(C:\ Users \ Manav \ Documents \ Github \ E_com_App \ routes \ routes.js:85:10)在C:\ Users \ Manav \ Documents \ Github \ E_com_App \ node_modules \ mongoose \ lib \ model.js:4589:16在C:\ Users \ Manav \ Documents \ Github \ E_com_App \ node_modules \ mongoose \ lib \ query.js:4323:12在process.nextTick(C:\ Users \ Manav \ Documents \ Github \ E_com_App \ node_modules \ mongoose \ lib \ query.js:2805:28)在process._tickCallback(内部/进程/next_tick.js:61:11)在以下位置发出了“错误”事件:在C:\ Users \ Manav \ Documents \ Github \ E_com_App \ node_modules \ mongoose \ lib \ model.js:4591:13在C:\ Users \ Manav \ Documents \ Github \ E_com_App \ node_modules \ mongoose \ lib \ query.js:4323:12在process.nextTick(C:\ Users \ Manav \ Documents \ Github \ E_com_App \ node_modules \ mongoose \ lib \ query.js:2805:28)在process._tickCallback(内部/进程/next_tick.js:61:11)[nodemon]应用程序崩溃-等待文件更改,然后再开始...

请参见我的完整代码:.git

回答如下:

我看到您的代码,在此行Product.findById(productID,(err,product)=>{中,您从findById模块调用了product函数。但我只在此文件中看到

const mongoose = require('mongoose');
const schema = mongoose.Schema;

const productSchema = new schema({
    imagePath: {type: mongoose.Schema.Types.String, required:true},
    // imagePath2: {type: mongoose.Schema.Types.String, required:true},
    // imagePath3: {type: mongoose.Schema.Types.String, required:true},
    // imagePath4: {type: mongoose.Schema.Types.String, required:true},
    // imagePath5: {type: mongoose.Schema.Types.String, required:true},
    name: {type: mongoose.Schema.Types.String, required:true},
    desc: {type: mongoose.Schema.Types.String, required:true},
    price: {type: mongoose.Schema.Types.Number, required:true},
});

module.exports = mongoose.model("DND - Products",productSchema);

您必须在本节中定义所需的功能。例如:findById

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论