Node.JS + Typescript - Действительно для установки конфигурации базы данных с помощью module.exports - PullRequest
0 голосов
/ 06 мая 2020

Я использую Mon goose в моем приложении node.js (написанном на Typescript).

Mon goose документы ясно показывают, как подключиться к их БД, как это, однако я хочу, чтобы конфигурация находилась в отдельном файле, а не в моем индексе. js.

Допустимо ли это, т.е. это module.exports, или есть еще один более свежий подход, о котором я должен знать :

import mongoose = require('mongoose');

const server = '127.0.0.1:27017';
const database = 'test';

class Database {
  constructor() {
    this._connect()
  }

_connect(): void {
     mongoose.connect(`mongodb://${server}/${database}`)
       .then(() => {
         console.log('Database connection successful')
       })
       .catch(err => {
         console.error('Database connection error')
       })
  }
}

module.exports = new Database()

Еще одна вещь, о которой мне было интересно, я предполагаю, что _connect() будет вызываться только тогда, когда я импортирую его в какой-то другой файл - или это module.exports = new Database() автоматически запустит этот конструктор?

Любая помощь приветствуется.

Спасибо

1 Ответ

0 голосов
/ 06 мая 2020

Вы можете создать свой держатель конфигурации, используя такую ​​библиотеку, как convict (https://www.npmjs.com/package/convict). Там вы можете указать всю конфигурацию вашего приложения. Ваш mongoFactory.ts может просто содержать функцию, которая действует как фабрика услуг для вашего экземпляра Mon goose.

Это образец образца js, чтобы избежать всей энтропии Ts

module.exports = config => {
 // create a new Mongoose instance
 // setup the mongoose instance based on the configuration
 // check for problems and in case let the caller know
 // return the mongoose instance
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...