Env Vars не определен в моем семени. js файл (NODEJS) - PullRequest
0 голосов
/ 11 июля 2020

Итак, я работаю над этим проектом, и все работает нормально, мой .env работает, и все переменные env определены в файлах вариантов. Затем я решил создать исходный файл для своей базы данных, но он не может прочитать значение MONGODB_URL из .env, и его результат не определен. Хотя он работает практически везде, я использую его (та же переменная!)

Я уже настроил .env в своем приложении. это мой сервер. js:

#!/usr/bin/env node
require('dotenv').config()
require('./db/mongoose.js')

const cors = require("cors")
const express = require('express')
const userRouter = require('./routers/user.router')
const answerRouter = require('./routers/answer.router')
const questionRouter = require('./routers/question.router')

console.log(process.env.MONGODB_URL) // works!
const port = process.env.SERVER_PORT // port = 5000

const app = express()
app.use(express.json())
app.use(cors())
app.use(userRouter) 
app.use(questionRouter)
app.use(answerRouter)


app.listen(port,()=>{
    console.log("server is up on port: " + port) //server is up on port 5000
})

это мой .env

SERVER_PORT = 5000
MONGODB_URL='mongodb://127.0.0.1:27017/app0-dev-database'

это мое семя. js

const seeder = require('mongoose-seed');

console.log(process.env.MONGODB_URL) // undefined
seeder.connect(process.env.MONGODB_URL, function(){ // error
    seeder.loadModels([
        './server/models/user.model.js',
        './server/models/question.model.js'
    ]);
    seeder.clearModels (['User','Question' ], function(){
        seeder.populateModels(data, function (err, done){
            if(err) {
                return console.log("seed err", err)
            }
            if (done) {
                return console.log("seed done", done);
            }
            seeder.disconnect()
        })
    })
})

это моя структура каталогов значение MONGODB_URL не определено Мне нужно знать, как читать его значение

Заранее спасибо

1 Ответ

0 голосов
/ 11 июля 2020

Если seed. js не требует / не загружает сервер. js каким-либо образом, вы не можете полагаться на вызов dotenv там - вам нужно требовать его в обоих файлы. В "seed. js" вы должны написать следующее:

require('dotenv').config()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...