const express = require('express')
const app = express()
const bodyParser = require('body-parser')
require('dotenv').config({path: __dirname + '/.env'})
const DbConnect = require('./startup/dbconnect')
class App {
constructor() {
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
const dbConnect = new DbConnect()
return dbConnect.initilize()
.then(() => {
app.listen(3000, () => {
console.log("App is running")
})
})
.catch((err) => {
console.log("Error", err)
})
}
}
exports.module = new App()
connect. js
const mongoose = require('mongoose');
function MongoConnect() {
let mongoConfiguration = '';
Object.defineProperty(this, 'mongoConfiguration', {
set: function (mongoInfo) {
mongoConfiguration = mongoInfo;
},
get: function () {
return mongoConfiguration;
}
});
}
MongoConnect.prototype.initialize = function () {
return new Promise((resolve, reject) => {
if (this.mongoConfiguration.USERNAME != '' && this.mongoConfiguration.PASSWORD != '') {
mongoose.connect(`mongodb://${this.mongoConfiguration.USERNAME}:${this.mongoConfiguration.PASSWORD}@${this.mongoConfiguration.host}/${this.mongoConfiguration.db_name}`, { useNewUrlParser: true, useFindAndModify: false });
} else {
mongoose.connect(`mongodb://${this.mongoConfiguration.DB_HOST}/${this.mongoConfiguration.DB_NAME}`, { useUnifiedTopology: true, useFindAndModify: false, useNewUrlParser: true });
}
var db = mongoose.connection;
db.on('error', function (error) {
reject(error.message);
});
db.once('open', function () {
resolve("Mongodb connected!");
});
});
};
module.exports = MongoConnect;
dbConfig. js
const MongoConnect = require('../library/mongoose/connect')
const config = require('../config/configuration')
class DbConnect {
initilize() {
return new Promise((resolve, reject) => {
let mongoConnect = new MongoConnect()
mongoConnect.mongoConfiguration = config.development
return mongoConnect.initialize()
.then((s) => {
resolve(console.log("DB connected successfully"))
})
.catch((err) => {
reject(console.log("Something went wrong", err))
})
})
}
}
module.exports = DbConnect
Я получаю странный ответ здесь Я записал некоторую конфигурацию базы данных в dbconnect, но он не получает данные из файла .env.
загружается ли файл .env позже, чем файл dbconnect?
Если я поставлю require ('doting'). config () после const DbConnect = require ('./ startup / dbconnect') он говорит undefined, если я поставлю перед const DbConnect = require ('./ startup / dbconnect'), тогда файл подключения db не может получить к нему доступ, почему это происходит?