typescript - TypeOrm 創建了資料庫但無法連接
我正在嘗試建立 JWT 認證系統,為此我決定使用 NestJs 和 SQLite。程式碼會生成 SQLite 檔案,但之後會拋出「無法連接到資料庫」的錯誤。我通過 SQLite 終端檢查後發現,表格也沒有被添加。
這裡的實體
import {
BeforeInsert,
Column,
CreateDateColumn,
Entity,
PrimaryGeneratedColumn
} from 'typeorm';
import * as bcrypt from 'bcrypt';
import * as jwt from 'jsonwebtoken';
import {UserRO} from './user.dto';
@Entity('user')
export class UserEntity {
@PrimaryGeneratedColumn(`uuid`)
id: string;
@CreateDateColumn()
created: Date;
@Column({
type: 'text',
unique: true
})
username: string;
@Column('text')
password: string;
@BeforeInsert()
async hashPassword() {
this.password = await bcrypt.hash(this.password, 10);
}
以及來自 app.module 的 sqlite 資料庫描述
@Module({
imports: [TypeOrmModule.forRoot({
type: 'sqlite',
database: 'taskDB',
synchronize: true,
logging: false,
entities: [__dirname + '/../**/*.entity{.ts,.js}'],
}), UserModule],
controllers: [AppController],
providers: [AppService],
})
而這就是終端機發送的
(function (exports, require, module, __filename, __dirname) { import {BeforeInsert, Column, CreateDateColumn, Entity, PrimaryGeneratedColumn} from 'typeorm';
[0] ^
[0]
[0] SyntaxError: Unexpected token {
[0] at new Script (vm.js:85:7)
[0] at createScript (vm.js:266:10)
[0] at Object.runInThisContext (vm.js:314:10)
[0] at Module._compile (internal/modules/cjs/loader.js:698:28)
[0] at Object.Module._extensions..js (internal/modules/cjs/loader.js:749:10)
[0] at Module.load (internal/modules/cjs/loader.js:630:32)
[0] at tryModuleLoad (internal/modules/cjs/loader.js:570:12)
[0] at Function.Module._load (internal/modules/cjs/loader.js:562:3)
[0] at Module.require (internal/modules/cjs/loader.js:667:17)
[0] at require (internal/modules/cjs/helpers.js:20:18)
答案#1
使用這個:
entities: ['dist/**/*.entity{.ts,.js}'],
或者這個:
entities: [__dirname + '/**/*.entity{.ts,.js}'],
