gpt4 book ai didi

javascript - Nodejs : Can not read property of null

转载 作者:行者123 更新时间:2023-12-03 05:21:45 24 4
gpt4 key购买 nike

我创建这条路由是为了检查 Mongoose 中是否有一些数据,并基于此我将状态变量设置为 true,并在路由级别检查其是否为 true 并适本地发送响应,我得到错误响应和服务器崩溃

can not read property of 'state' null

这是代码:

app.get('/authenticate', function(req, res){

var state = false;
user.remove({}, function(err){
if(err){
console.log('didnt clear');
return;
}else{
user.find({}, function(err, data){
if(err){
console.log('error occured while finding');
return;
}
this.state = true;
console.log(this.state);

})
return this.state;
}
})

if(state){
res.json('removed all documents in collection);
}else{
res.json('something bad happened');
}
})

最佳答案

首先改变:

  this.state = true;
console.log(this.state);

至:

  state = true;
console.log(state);

其次,这没有效果:

  return this.state;

无论你从回调中返回什么,它都会被忽略。

接下来,这将永远是错误的:

if(state){ ... }

因为该行将在任何回调开始之前被调用。您正在测试该变量,然后它才有机会与您分配给它的原始 false 不同。

这些是我首先想到的代码问题。可能还有更多问题,但首先您需要了解语句的评估顺序,然后才能详细说明。

当您在变量可能被更改之前对其进行测试时,不要期望它与您分配给它的原始值有任何不同。

关于javascript - Nodejs : Can not read property of null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41347239/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com