【发布时间】:2021-12-16 00:15:36
【问题描述】:
我试图通过this.$session.userid从 Nuxt 中的快速会话 (req.session.userid) 中获取值,但无法在 console.log 中获取值。
它只是显示“无法读取未定义的属性(读取'userid')”
如果我得到 this.$session 的值,那么它只会显示“未定义”
如果我想通过会话正常获取值,那么我需要如何调用该值?或者我不能通过会话获得价值?
/nuxt.config.js
export default{
components: true,
buildModules: [
'@nuxtjs/dotenv'
],
modules: [
'@nuxtjs/dotenv', 'cookie-universal-nuxt',
],
router: {
middleware: ['auth']
},
serverMiddleware: [
'~/server/app.js',
],
}
/server/app.js
const express = require('express')
const app = express()
const session = require('express-session')
const cors = require('cors')
app.use(cors())
//body-parser added
app.use(express.json())
//session added
app.use(session({
secret: 'secret key',
resave: false,
saveUninitialized: true
}))
...
app.use('/login_router', require('./routes/login_router'))
/server/routes/login_router.js
const express = require('express');
const router = express.Router();
const path = require('path');
router.get('/testGetUserid', function(req, res){
req.session.userid = '10101'
console.log('req.session.userid>>>>>>', req.session.userid)
res.redirect('/login')
});
/pages/login.vue
<template>
<button @click="submitTest">Get the userid</button>
</template>
<script>
export default {
methods:{
submitTest(){
console.log('this.$session.userid>>>', this.$session.userid) // I want to see this value as 10101
}
}
}
</script>
【问题讨论】:
-
据我所知,express-session 会将 cookie 保存为
httpOnlycookie,您的浏览器/客户端无法访问该 cookie。不过,您只能从后端访问它。 -
哦,谢谢您的信息。那怎么把后面的值传给Vue.js呢?
标签: node.js vue.js express nuxt.js