【发布时间】:2019-11-04 13:13:44
【问题描述】:
我正在开发一个网络服务器并尝试制作上传文件路由。但我只需要登录的人可以上传文件。所以我添加了检查会话数据是否可用的中间件。但是这个路由中的会话数据总是未定义的。
我尝试重新加载并重新生成会话,但它仍然未定义。我将库从“multer”更改为“express-fileupload”,但没有效果。可能是因为内容的类型是 multipart-form-data。我不确定。
会话中间件设置。
const sessionMidleware = session({
secret: 'My secret key',
resave: false,
saveUninitialized: false,
})
app.use(sessionMidleware)
我插入用于调试的中间件。
app.post(
'/sendinvoice',
(req, res, next) => {
console.log(req.session)
next()
},
uploadCustomerInvoice().fields([
{ name: 'file', maxCount: 1 },
{ name: 'course_id', maxCount: 1 },
]),
customerInvoice,
)
这是我在登录和注册时用于在其他路由中设置会话的功能。
module.exports = (req, profile, courses) => {
req.session.profile = profile
req.session.courses = courses
req.session.isSuper = false
req.session.isAdmin = false
req.session.save()
}
我希望 req.session.profile 的输出为存储用户数据的对象,但实际输出未定义。
【问题讨论】:
-
你在哪里设置会话?
-
文件顶部
标签: javascript node.js express multer express-session