У меня есть проект NestJS, который я настроил, и пытаюсь использовать Sequelizer для доступа к моей базе данных.В настоящее время у меня есть поставщик базы данных и модуль, настроенный для глобального использования (модуль внедряется в мой app.module), который настроен следующим образом:
database.module.ts:
import {Global, Module } from '@nestjs/common';
import { databaseProvider } from './database.provider'
@Global()
@Module({
providers: [databaseProvider],
exports: [databaseProvider]
})
export class DatabaseModule{}
database.provider.ts:
import {Sequelize } from 'sequelize-typescript';
export const databaseProvider = {
provide: 'SequelizeInstance',
useFactory: async () => {
const config = {
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: process.env.DB_DATABASE,
host: process.env.DB_HOST,
port: Number(process.env.DB_PORT),
logging: false,
dialect: 'mssql',
force: false,
timezone: '-07:00'
};
const sequelize = new Sequelize(config);
return sequelize;
}
};
Мой модуль для вызова кода использует модуль и службу, которые настроены следующим образом:
db.module.ts:
import { Module } from '@nestjs/common';
import { DBService } from './db.service';
import { DBController } from './db.controller'
@Module({
controllers: [DBController],
providers: [DBService],
exports: [DBService]
})
export class DBModule {}
db.service.ts:
import { Inject, Injectable } from '@nestjs/common';
@Injectable()
export class DBService {
constructor(
@Inject('SequelizeInstance') private readonly sequelizeInstance
) {}
public async getRegions(): Promise<any> {
return this.sequelizeInstance.query('EXEC pr_region_lst')
.then(data => data)
.catch(error => console.log(error));
}
}
Проблема, с которой я сталкиваюсь, заключается в том, что сиквелизер продолжает выдавать ошибку, что для пользователя '' не удалось войти в систему ''.Я подключил отладчик и смотрю код в db.service.ts.Когда я смотрю на sequelizeInstance, он показывает конфигурацию с именем пользователя из предоставленного мной файла конфигурации.Я не знаю, почему он не использует его в контексте БД.