我正在使用cmd'vue init nuxt-community / express-template'在nuxt + express上建立一个网站。我正在使用的功能是“ auth”。我正在尝试获取会话,同时刷新页面,以便正确保存商店(仅供用户参考)。
配置会话后(我使用的中间件是'express-session'),我在'登录成功'后设置了会话并正确地对其进行了控制,但是当我在nuxtServerInit方法中对req.session进行控制时,它给了我一个“未定义”。
// express-api
router.post('/login', async (req, res, next) => {
const { username, password } = req.body;
try {
const userQuery = await User.findOne({
username,
password: md5(password)
}).exec();
if (userQuery) {
req.session.user = userQuery
console.log(req.session)
return ResUtils.success(res, userQuery);
// store actions
nuxtServerInit({ commit }, { req, res }) {
console.log(req.session)
commit('initUserInfo', req.session.user)
我希望获得req.session.user,以便在刷新页面后可以使用它初始化存储。不幸的是,req.session是不确定的。
答案 0 :(得分:0)
您基本上需要在创建Express实例的任何位置将其添加到server / index.js或server / app.js中
// Create express router
const router = express.Router()
// Transform req & res to have the same API as express
// So we can use res.status() & res.json()
router.use((req, res, next) => {
Object.setPrototypeOf(req, app.request)
Object.setPrototypeOf(res, app.response)
req.res = res
res.req = req
next()
})