/**
cookie 安装
yarn: yarn add cookie-universal-nuxt
npm: npm i --save cookie-universal-nuxt
*/
{
modules: [
['cookie-universal-nuxt', { parseJSON: false }]
]
}
//store里使用
this.app.$cookies.set('token', res.login_name)
nuxtServerInit({ commit }, { app }) {
console.log('token', app.$cookies.get('token'))
const token = app.$cookies.get('token')
commit('SET_TOKEN', token)
}
/**
eleUI 安装
npm i element-ui -S
plugins
*/
import Vue from 'vue'
import Element from 'element-ui'
import locale from 'element-ui/lib/locale/lang/en'
Vue.use(Element, { locale, zIndex: 3000 })
/**
weditor 安装
npm i wangeditor --save
plugins
*/
import Wangeditor from 'wangeditor'
export default ({ app }) => {
app.router.afterEach(() => {
// 在Window原型中设置wangEditor
Window.prototype.Wangeditor = Wangeditor
})
}
/**
$axios
plugins
*/
import { Message } from 'element-ui'
export default function ({ $axios, redirect, app, store }) {
$axios.interceptors.request.use(
(config) => {
// do something before request is sent
return config
},
(error) => {
// do something with request error
return Promise.reject(error)
}
)
$axios.onRequest((config) => {
if (app.$cookies.get('token')) {
config.headers['x-auth-token'] = store.getters.GET_TOKEN
}
})
// response interceptor
$axios.interceptors.response.use(
/**
* Determine the request status by custom code
* Here is just an example
* You can also judge the status by HTTP Status Code
*/
(response) => {
const res = response.data
if (res.code * 1 === 200) {
return res
} else if (res.code * 1 === 203) {
store
.dispatch('loginOut')
.then(() => {
return res
})
Message.warning(res.msg || '系统错误')
} else {
Message.warning(res.msg || '系统错误')
}
return Promise.reject(new Error(res.msg))
},
(error) => {
console.log('err' + error) // for debug
return Promise.reject(error)
}
)
$axios.onError(() => {
redirect({ path: '/' })
})
}
/**授权中间件 middleware*/
export default function ({ store, redirect, route }) {
const whiteList = ['index', 'login'] // 没有重定向白名单
// 如果用户未经过身份验证
if (!store.getters.GET_TOKEN && !whiteList.includes(route.name)) {
return redirect({ path: '/login' })
}
}
/**部署pm2守护进程*/
打包:
npm run build
运行文件
.nuxt static nuxt.config.js package.json
依赖安装
npm install
pm2运行命令:
pm2 start ./node_modules/nuxt/bin/nuxt.js -- start
pm2会于运行nuxt.config.js里的代理
nuxt的使用和一些问题
最新推荐文章于 2024-07-15 10:03:35 发布