var express = require('express');
var router = express.Router();
var Cart = require('../models/cart')
router.get('/', function(req, res, next) {
var cart = new Cart(req.session.cart)
});
当我使用“get”方法执行上述node.js程序时, 触发以下错误。
无法读取未定义的属性'cart'
TypeError:无法读取未定义的属性'cart'
我想模拟购物车,并在用户尝试将商品添加到购物车时使用会话属性存储记录。
该程序用于读取会话属性“cart”,无论是否创建,都可以返回活动会话的购物车记录。
但是,如果我之前没有初始化它,程序似乎无法识别这个“cart”会话属性。
如何解决此问题,以免程序返回错误?
答案 0 :(得分:1)
您正在尝试访问<route streamCache="true">
上不存在的session
属性,因为您没有使用任何会话中间件。
即使您创建了这样的属性,它也不会在HTTP请求中持久存在,您需要使用会话管理器来处理该持久性。
您可以使用基本express-session。
req
然后您的所有请求都会有// require it
var session = require('express-session')
// configure it
app.use(session({
secret: '123456',
resave: false,
saveUninitialized: true,
cookie: {
secure: true
}
}))
属性。