我只想从请求中返回用户对象。
public async getUserByHash(hash: IHash) {
this.logger.log('Hash for check email geted');
const user = await this.hashRepository.findOne({
select: ['id', 'user'],
relations: ['user'],
where: hash,
});
return user;
}
用户变量现在包含。
{
id:2
user: {
id: 3,
email:"email@test.com",
password:"12345678"
}
}
我只想获取用户字段,即他的标识符和他的电子邮件。
我试图这样做,但出现错误。
public async getUserByHash(hash: IHash) {
this.logger.log('Hash for check email geted');
const user = await this.hashRepository.findOne({
select: ['user.id', 'user.email'],
relations: ['user'],
where: hash,
});
return user;
}
但是我出错了。
QueryFailedError:ER_BAD_FIELD_ERROR:“字段列表”中的未知列“ distinctAlias.Hash_id”
如何仅获取用户字段,ID和电子邮件?
答案 0 :(得分:1)
您可以尝试lodash
import { pick as _pick } from 'lodash';
public async getUserByHash(hash: IHash) {
this.logger.log('Hash for check email geted');
const user = await this.hashRepository.findOne({
select: ['id', 'user'],
relations: ['user'],
where: hash,
});
return _pick(user.user, ['id', 'email']);
}
答案 1 :(得分:0)
我想你可以试试这个。
return user.user
希望有效。