-1

大家好,我对打字稿中的类型有疑问。我正在使用 micro orm 从数据库中获取数据我正在使用此代码

const user = (await orm).em.findOne(User, { username: options.username });

它让我回来了

user: Promise<string | null>

我的问题从这里开始我必须将此对象用作表单中的字符串

user.password 

在以下查询中

const valid = await argon2.verify(user.password ,options.password);

但它给了我错误

Property 'password' does not exist on type 'Promise<User | null>'

我不知道如何解决这个问题

4

1 回答 1

0

看起来您已经处于异步函数中。问题是您没有等待用户承诺完成。

尝试这个:

// Check that this is really giving you an Entity Manager
const em = (await orm).em;

const users = await em.findOne(User, { username: options.username }); 
if (!users || users.length === 0) throw new Error('No user!');
const user = users[0];
const valid = await argon2.verify(user.password ,options.password);
于 2021-05-18T11:04:15.227 回答