【问题标题】:How can I give path to dotenv file inside Node.js project如何在 Node.js 项目中提供 dotenv 文件的路径
【发布时间】:2020-11-10 04:26:25
【问题描述】:

我有以下项目结构,我想使用 'dotenv' 包来存储一些隐藏的值。

projectName/src/
projectName/.env/

我目前有两个 .js 文件:

1. projectName/src/db/mongoose.js :
const { join } = require('path')
require('dotenv').config({ path: join(__dirname, '..', '..', '.env') })


const connectionURL = process.env.MONGOOSE_CONNECTION_URL
mongoose.connect(connectionURL, {
    useNewUrlParser: true,
    useUnifiedTopology: true
})

2. projectName/src/index.js :
const express = require('express')
const { join } = require('path')
require('./db/mongoose')
const User = require('./models/user')

require('dotenv').config({ path: join(__dirname, '..', '.env') })

const app = express()
const port = process.env.NODE_PORT


app.listen(port, () => {
    console.log('App is running on port: ' + port);

})

既然 '.env' 文件位于项目的根目录中,并且我的项目从 index.js 运行,那么为什么我总是要在每个其他 js 文件中显示 '.env' 文件的路径? 我认为在 index.js 中显示 '.env' 路径应该足以运行项目。

【问题讨论】:

    标签: node.js dotenv


    【解决方案1】:

    不,您不必正确的方法是创建 config.js 文件并需要 dotenv 一次,然后将所有配置放入其中并导出您需要在其他文件上使用的内容。

    index.js

    
    const express = require('express')
    require('./db/mongoose')
    const User = require('./models/user')
    const {port} =require('./config')
    const app = express()
    
    
    
    app.listen(port, () => {
        console.log('App is running on port: ' + port);
    
    })
    
    

    config.js

    
    require('dotenv').config({ path:'your .env path' })
    
    module.exports={ port: process.env.NODE_PORT || 5000, connectionURL: process.env.MONGOOSE_CONNECTION_URL }
    
    

    并像索引中的端口一样要求它

    【讨论】:

      【解决方案2】:

      只需在 index.js 中添加 require('dotenv') ,但在开头。 在您的示例中,当您添加 db 模块时,尚未配置 dotenv。

      【讨论】:

        【解决方案3】:

        通过调用解决的问题

        require('dotenv').config({ path: join(__dirname, '..', '.env') })

        在导入 Mongoose 文件之前。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-01-14
          • 1970-01-01
          • 2011-09-01
          • 2016-11-07
          • 1970-01-01
          • 2012-03-23
          • 2014-08-28
          相关资源
          最近更新 更多