пользователя
@Table({ timestamps: false, tableName: "web_users" })
export default class User extends Model<User> {
@Column({ field: "login" })
public login: string
...
public validatePassword(password: string) {
return this.password === password.trim()
}
public toPlainObject() {
return {
id: this.id,
login: this.login,
email: this.email,
}
}
есть функция авторизации
export default async function (payload: Payload) {
const user = await User.findOne({ where: { email: payload.email.trim() } })
const token = sign(user.toPlainObject(), environment.auth.secret,)
return { success: true, content: token }
}на клиенте когда при авторизации ввожу логин и пароль, проходит авторизация и на сервере выполняется такой запрос
SELECT [id], [login], [email], [password], ... WHERE [User].[id] = 1;в коде я нигде не вижу этот запрос, каким макаром он выполняется? как его можно найти и изменить? хочу к нему добавить еще несколько полей с помощью left join
const user = await User.findOne({ where: { email: payload.email.trim() } })
findOne подразумевает select по данным которые хранятся в oPlainObject()?
ну, в тайпорм это так и работает, по логике findOne() берет первух подходящую запись
и как оно подставляет нужный user.id при логировании, если в findOne идет проверка про эмейлу
точнее прилетает вот таких вот два запроса Executing (default): SELECT [id], [login], [email], [password], ... WHERE [User].[email] = N'stat@kai.ua'; Executing (default): SELECT [id], [login], [email], [password], ... WHERE [User].[id] = 1;по первому понятно, в findOne и идет проверка по емейлу, а вот где оно подставляет id не пойму
Обсуждают сегодня