创建新用户时,我将首先通过以下方式检查重复用户:
const duplicate = await User.findOne({ username }).lean().exec();
我很困惑为什么我正在做的编码教程附加了exec方法。从我所读到的,它检查字符串中的匹配项,并将返回数组中的任何匹配项。因此,在post请求中,id获取用户名findOne(我相信)将已经匹配req.body.username到我的用户模式/DB内的用户名,因此,我不明白为什么运行教程的人还添加了.exec方法。我敢肯定有什么东西从我头上飞过。
尝试在exec方法上阅读mdn文档
1条答案
按热度按时间y53ybaqx1#
在这行代码中:
Model.findOne创建并返回一个query对象,可以进一步操作该对象。
lean方法修改该查询,并返回修改后的对象。
exec方法异步执行查询并返回一个promise。
await
等待承诺解析,并返回最终值,然后将该值赋给duplicate
变量。