Javascript Express Problem routes ReferenceError:无法访问';用户';初始化前问题验证
我创建了一个更新密码的路由,然后我想Javascript Express Problem routes ReferenceError:无法访问';用户';初始化前问题验证,javascript,node.js,express,Javascript,Node.js,Express,我创建了一个更新密码的路由,然后我想console.log使用更新结果找到的用户,但我得到了一个错误 错误: (节点:13892)不推荐使用警告:不推荐使用未将“useFindAndModify”选项设置为false的Mongoose:`FindOneAndeDate()`和`findOneAndDelete()`选项。见:https://mongoosejs.com/docs/deprecations.html#findandmodify (使用`node--trace deprecation
console.log
使用更新结果找到的用户,但我得到了一个错误
错误:
(节点:13892)不推荐使用警告:不推荐使用未将“useFindAndModify”选项设置为false的Mongoose:`FindOneAndeDate()`和`findOneAndDelete()`选项。见:https://mongoosejs.com/docs/deprecations.html#findandmodify
(使用`node--trace deprecation…`显示警告的创建位置)
ReferenceError:无法在初始化前访问'user',Problem auth
它来自then()
回调函数,在该函数中,您试图在初始化user
变量之前读取该变量的值-即在其声明中指定一个值。使用let
绑定无法做到这一点
在这里,对user
的赋值将在整个承诺链打开之前不会发生-只有当then()
或catch()
回调函数返回时才会发生
您应该坚持使用await
语法,以同步方式编写整个代码,而不是混合使用then()/catch()
callbacks-,问题应该自行解决
try {
let user = await User.findOneAndModify(
{ email: req.query.email },
{ password: password }
)
console.log(user);
res.redirect("/superuser/businesses");
} catch(error) {
console.log(err + "problem auth"));
}
是的,听起来不错,我明天会检查并验证Res。