Typescript og typeorm konfigurasjon .ts ingen overbelastning passer til dette kallet
Hei, jeg har et problem i min app.ts når jeg laster inn innstillingene mine fra ormconfig.ts for typeorm-funksjonen for å opprette tilkoblingen, fikk jeg denne feilen i appen min:
No overload matches this call.
Overload 1 of 3, '(name: string): Promise<Connection>', gave the following error.
Argument of type 'typeof import("d:/EmasaTi_StockControl/src/shared/infra/http/ormconfig")' is not assignable to parameter of type 'string'.
Overload 2 of 3, '(options: ConnectionOptions): Promise<Connection>', gave the following error.
Argument of type 'typeof import("d:/EmasaTi_StockControl/src/shared/infra/http/ormconfig")' is not assignable to parameter of type 'ConnectionOptions'.
Type 'typeof import("d:/EmasaTi_StockControl/src/shared/infra/http/ormconfig")' is missing the following properties from type 'ExpoConnectionOptions': type, database, driverts(2769)
Peek Problem (Alt+F8)
No quick fixes available
kode :
import 'dotenv/config';
import { createConnection } from 'typeorm';
import App from './app';
import validateEnv from '@utils/validateEnv';
import * as config from './ormconfig';
validateEnv();
(async () => {
try {
const connection = await createConnection(config);
await connection.runMigrations();
} catch (error) {
console.log('Error while connecting to the database', error);
return error;
}
const app = new App(
);
app.listen();
})();
min konfigurasjonsfil:
import { ConnectionOptions } from 'typeorm';
const rootDir = process.env.NODE_ENV === 'development' ? 'src' : 'build/src';
export const config: ConnectionOptions = {
type: 'postgres',
host: process.env.DB_HOST,
port: Number(process.env.DB_PORT),
username: process.env.DB_USER,
password: process.env.DB_PASS,
database: process.env.DB_NAME,
entities: [rootDir + '/entities/**/*.{js,ts}'],
migrations: [rootDir + '/migrations/*.{js,ts}'],
subscribers: [rootDir + '/subscribers/**/*.{js,ts}'],
cli: {
entitiesDir: `${rootDir}/entities`,
migrationsDir: `${rootDir}/migration`,
subscribersDir: `${rootDir}/subscriber`,
},
synchronize: false,
logging: true
};
module.exports = config;
Jeg kan ikke forestille meg hvordan jeg kunne løse dette problemet hvis noen kan hjelpe meg, er jeg takknemlig
Svar #1
Jeg er ikke sikker på hva den perfekte løsningen er, men jeg har funnet en måte å omgå det på.
- Fjern
"type": "mysql"fra dintsconfig.jsoneller annen konfigurasjonsfil etter hva som måtte være tilfelle. - Importer konfigurasjonen din som vanlig. Eksempel:
import config from './ormconfig.json'. - Bruk
config-variabelen slik:createConnection({type: "postgres", ...config}).
Jeg tror at av en eller annen grunn blir ikke type-nøkkelen analysert på riktig måte.
Skål.