我试图在nuext .js中使用serverMiddleware中的环境变量。当它以字母(MY_SECRET
)开头时,它可以正常工作,但由于它是一个私有服务器变量,我希望它以下划线(_MY_SECRET
)开头。然而,由于某些原因,后者是未定义的。
// .env
MY_SECRET = hello
_MY_SECRET = world
// serverMiddleware/index.js
console.log(process.env.MY_SECRET, process.env._MY_SECRET) // output: hello undefined
为什么会发生这种情况,我有什么其他的选项来前缀我的私有变量?
Nvm,您不能在serverMiddleware
中使用runtimeConfig
(可能是因为它不在next上下文中),如下所示:https://github.com/nuxt/nuxt.js/issues/2033#issuecomment-773181809
我自己尝试了一个下划线,它与publicRuntimeConfig
一起工作得很好。
经过一些研究,也就是这个答案和阅读官方规范,在一些维基百科之上,看起来_
是一个有效的字符。同时,它也可用作分隔符。
我已经尝试了几件事,发现如果你用_
前缀它,你甚至不会在process.env
中拥有它,这也不是一个dotenv问题(检查了这个),所以我只是猜这是不可能的。
解决方案使用PRIVATE_MY_SECRET
,你应该很好!