Next.js在浏览器中访问env环境变量报错解决方案

报错的代码

.env.local

DB_HOST=localhost
DB_USER=myuser
DB_PASS=mypassword

env.js

export default function Env() {
    const dbHost = process.env.DB_HOST
    const dbUser = process.env.DB_USER
    const dbPass = process.env.DB_PASS
    return (
      <div>
        <p>DB Host: {dbHost}</p>
        <p>DB User: {dbUser}</p>
        <p>DB Password: {dbPass}</p>
      </div>
    );
  }
  

解决办法

在给环境变量名添加,在浏览器使用的时候必须添加NEXT_PUBLIC_前缀,在js中不用

修改后的代码

.env.local

NEXT_PUBLIC_DB_HOST=localhost
NEXT_PUBLIC_DB_USER=myuser
NEXT_PUBLIC_DB_PASS=mypassword

env.js

export default function Env() {
    const dbHost = process.env.NEXT_PUBLIC_DB_HOST
    const dbUser = process.env.NEXT_PUBLIC_DB_USER
    const dbPass = process.env.NEXT_PUBLIC_DB_PASS
    return (
      <div>
        <p>DB Host: {dbHost}</p>
        <p>DB User: {dbUser}</p>
        <p>DB Password: {dbPass}</p>
      </div>
    );
  }
  

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在router.beforeEach获取环境变量报错可能是因为在该方法无法直接访问环境变量。解决这个问题的方法是将环境变量在Vue应用的入口文件进行配置,然后在router.beforeEach方法通过Vue实例的$env属性来获取环境变量的值。 首先,在入口文件配置环境变量。可以使用process.env获取环境变量的值,例如: ``` const env = process.env.NODE_ENV ``` 然后,在router.beforeEach方法通过Vue实例的$env属性来获取环境变量的值,例如: ``` router.beforeEach((to, from, next) => { const env = Vue.prototype.$env // 在这里可以使用env变量进行相关操作 next() }) ``` 这样就可以在router.beforeEach方法获取环境变量的值了。请注意,确保在入口文件正确配置了环境变量,并且在Vue实例正确设置了$env属性。 #### 引用[.reference_title] - *1* [Nuxt.js配置项相关记录总结【路由拦截,环境变量,代理】](https://blog.csdn.net/Jone_hui/article/details/128425617)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [vue pc项目 router.js 配置详解 ,vue项目路由懒加载的正确使用,vue实现动态路由一步到位](https://blog.csdn.net/m0_49515138/article/details/127904882)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhuyua

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值