это моя ошибка: QueryFailedError: ER_BLOB_KEY_WITHOUT_LENGTH: столбец BLOB / TEXT 'username', используемый в спецификации ключа без длины ключа
, если я удаляю unique: true, все идет нормально!
import {Entity, PrimaryGeneratedColumn, CreateDateColumn, Column, enter code here
BeforeInsert,} из 'typeorm';
import * as bcrypt from 'bcryptjs';
import * as jwt from 'jsonwebtoken';
import { response } from 'express';
//utilizzo Entity da typeorm e creo la tabella User Entity('User)
@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);
}
toResponseObject(showToken:boolean = true) {
const { id, created, username,token } = this;
const responseObject = { id, created, username,token };
if(showToken){
responseObject.token = token
}
return responseObject;
}
async comparePassword(attempt: string) {
return await bcrypt.compare(attempt, this.password);
}
private get token() {
const { id, username } = this;
return jwt.sign({
id,
username,
},process.env.SECRET,{expiresIn:"7d"})
}
}