nuxt.config.js 中:
module.exports = {
env: {
baseUrl: process.env.BASE_URL || 'http://localhost:3000'
}
}但如果node端和客户端需要使用同一个环境变量时(后面讲到API鉴权时会使用同一个SECRET变量),就需要同时在
nuxt.config.js 和
.env 维护这个字段,比较麻烦,我们更希望环境变量只需要在一个地方维护,所以为了解决这个问题,我找到了
@nuxtjs/dotenv 这个依赖,它使得nuxt的客户端也可以直接使用
.env ,达到了我们的预期。安装:
npm i @nuxtjs/dotenv客户端也是通过
process.env.XXX 来使用,不再举例啦。这样,我们通过
dotenv 和
@nuxtjs/dotenv 这两个包,就可以统一管理开发环境中的变量啦。另外,
@nuxtjs/dotenv 允许打包时指定其他的env文件。比如,开发时我们使用的是
.env ,但我们打包的线上版本想用其他的环境变量,此时可以指定build时用另一份文件如
/.env.prod ,只需在
nuxt.config.js 指定:
module.exports = {
modules: [
['@nuxtjs/dotenv', { filename: '.env.prod' }] // 指定打包时使用的dotenv
],
}@nuxtjs/toast模块
toast可以说是很常用的功能,一般的UI框架都会有这个功能。但如果你的站点没有使用UI框架,而alert又太丑,不妨引入该模块:
npm install @nuxtjs/toast然后在
nuxt.config.js 中引入
module.exports = {
modules: [
'@nuxtjs/toast',
['@nuxtjs/dotenv', { filename: '.env.prod' }] // 指定打包时使用的dotenv
],
toast: {// toast模块的配置
position: 'top-center',
duration: 2000
}
}这样,nuxt就会在全局注册
$toast 方法供你使用,非常方便:
this.$toast.error('服务器开小差啦~~')
this.$toast.error('请求成功~~')API鉴权
对于某些敏感的服务,我们可能需要对API进行鉴权,防止被人轻易盗用我们node端的API,因此我们需要做一个API的鉴权机制。常见的方案有jwt,可以参考一下阮老师的介绍: 《JSON Web Token 入门教程》 。如果场景比较简单,可以自行设计一下,这里提供一个思路:










