我使用的是nuxtjs,而我使用的是针对restful API的app身份验证。我想在服务器端存储变量我的令牌,我到处使用它来请求API的信息,但我不能将它存储在process.env变量中,因为我需要在它到期时(1小时后)修改它。令牌适用于应用程序,而不适用于用户,因此每次调用api都必须使用相同的令牌。我尝试使用fs将我的令牌保存在json文件中并在它到期时刷新它,但我不能在nuxtjs中使用fs,它告诉我fs不存在,可能是因为我尝试在客户端使用它。 你知道我怎么做的吗? 谢谢
答案 0 :(得分:1)
我在服务器端envirenment中使用express解决了,我不得不将服务器中间件配置放在nuxt.config.js中:
function DeleteDone(a, b, c) {
if (a.status === 'success') {
$("#" + a.id).remove();
}
}
和/server/index.js文件:
const bodyParser = require('body-parser')
const session = require('express-session')
module.exports = {
...
serverMiddleware: [
bodyParser.json(),
session({
secret: 'my-secret',
resave: false,
saveUninitialized: false,
cookie: { maxAge: 3600000 }
}),
'~/server'
],
...
和我的/server/api.js文件
const express = require('express')
const api = require('./api')
// 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()
var app = express()
router.use((req, res, next) => {
Object.setPrototypeOf(req, app.request)
Object.setPrototypeOf(res, app.response)
req.res = res
res.req = req
next()
})
router.get('/myroute', (req, res) => {
api.get('myroute')
.then((data) => {
res.json({success: true})
})
.catch((e) => {
res.status(500).json({ message: 'An error occurred' })
})
})
module.exports = {
path: '/server',
handler: router
}