首页 > 解决方案 > 如果我对一个弹出另一个错误进行排序,则会显示两个错误 TypeError: cart is not a constructor in post method and cart.find is not a function

问题描述

TypeError: cart is not a constructor已经使用这些技术一年多了,从来没有遇到过这样的问题,所以请帮忙

  router.post('/add-to-cart', isLoggedIn, function (req, res, next) {

    cart = new cart({
        price: req.body.price,
        adult: req.body.adult,
        children: req.body.children,
        kids: req.body.kids,
        arrival: req.body.arrival,
        departure: req.body.depart,
        totalprice: req.body.subtotal,
        user_id: req.body.userid,
        id: req.body.productId,
    });
    console.log("cart1592: " + cart);
    cart.save(function (err) {
        if (err) {
            console.log('error', 'Error: ' + err.message);
            console.log("cart1596: " + cart);
            return res.redirect('/');
        }
        // res.flash('thanks for your feedback');
        console.log("cart1600: " + cart);
        return res.redirect('/shopping-cart');


});
});

在这里导入

var router = express.Router();
var cart = require('../models/cart');
var review = require('../models/reviews');

cart.find 不是一项功能,多年来一直在使用这些技术,从未遇到过此类问题,因此请提供帮助

 router.get('/shopping-cart', isLoggedIn, function (req, res, next) {
    var slug3 = req.params.slug3;
    qryFilter = { "_id": req.user._id };


    var user = req.user._id;
    console.log(user);
    cart.find(function (err, cart) {
            console.log(cart);
            event = new Event({
                namespace: 'products',
                person: {
                    id: req.user._id,
                    first_name: req.user.first_name,
                    last_name: req.user.last_name,
                    email: req.user.email,
                },
                action: 'view',
                thing: {
                    type: "product",
                    id: product._id,
                    name: product.name,
                    category: product.category,
                    Product_Group: product.Product_Group
                }
            });
            event.save(function (err, eventId) {
                if (err) {
                    return -1;
                }

                res.send(cart);

        });
    });
});

这是我的架构已经使用这些技术一年多了,从来没有遇到过这样的问题,所以请帮忙

    var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var schema = new Schema({
    price: {
        type: Number,
        required: false
    },
    adult: {
        type: Number,
        required: false
    },

    children: {
        type: Number,
        required: false
    },
    id: {
        type: String,
        required: false
    },
    kids: {
        type: Number,
        required: false
    },
    arrival: {
        type: Date,
        required: false
    },
    user_id: {
        type: String,
        required: false
    },
    departure: {
        type: Date,
        required: false
    },
    totalprice: {
        type: Number,
        required: false
    },

});
module.exports = mongoose.model('cart',schema);

标签: node.jsexpressmean

解决方案


错误已解决原因是因为在声明 var cart 时覆盖了我对购物车的另一个​​声明,因此它显示购物车不是构造函数。所以它要么是这个,要么是其中一个只起作用,并且每次都有一个条件失败,感谢您的响应


推荐阅读