sof*_*ode 5 javascript environment-variables node.js
我试图使用process.env加载的一些环境变量访问dotenv.
我的文件夹结构:
.env
src
-- - server.js
Run Code Online (Sandbox Code Playgroud)
我的server.js配置:
(...)
import auth from './middleware/auth'
import dotenv from 'dotenv'
dotenv.load({
path: '../',
silent: process.env.NODE_ENV === 'production'
})
auth()
// Instantiate app
const app = express();
Run Code Online (Sandbox Code Playgroud)
我尝试访问process.env变量的文件:
(...)
module.exports = function() {
console.log("env", process.env.MONGODB_URI)
var options = {};
options.jwtFromRequest = ExtractJwt.fromAuthHeader()
options.secretOrKey = process.env.JWT_SECRET
Run Code Online (Sandbox Code Playgroud)
哪个日志env, undefined,然后崩溃
TypeError: JwtStrategy requires a secret or key
即使我移动.env到src(同一目录服务器)和删除path的config,它失败.
看来,当您指定路径时,需要将其填满:
require('dotenv').config({path: __dirname + '/../.env'});
Run Code Online (Sandbox Code Playgroud)
.env是你的档案
小智 5
尝试这个; 这应该有效。
import {} from 'dotenv/config'
import somethingElse from 'somethingElse'
...
[the rest of your code]
Run Code Online (Sandbox Code Playgroud)
这是因为 ES6 模块导入模块的方式。
如果你想深入挖掘更多。 请参考这个。https://hacks.mozilla.org/2015/08/es6-in-deep-modules/
总结一下:
当您运行包含导入声明的模块时,首先加载它导入的模块,然后在依赖关系图的深度优先遍历中执行每个模块主体,通过跳过任何已执行的内容来避免循环。
希望这会对某人有所帮助。
| 归档时间: |
|
| 查看次数: |
4293 次 |
| 最近记录: |