我有这条路线可以查询 API 以获取有关项目的信息。它使用超级代理发布获取请求,传递一些带有 .set 的标头,并且 project_results 应该包含数据。
现在问题来了:我可以为这个特定的路线/项目加载页面 20 次......其中 19 次它会完美运行,但随机它会抛出一个错误:
TypeError: Cannot read property 'creator' of null
这个错误指出了这条线:withif(project.creator == req.signedCookies.user_3rb._id) {
所以我知道它正在超越:if(project_results.status == '200') {
并且因为我一遍又一遍地查看同一个项目(而且我知道所有项目都有一个创建者,所以我检查了数据库)
我的问题是为什么有时它找不到 project_results 变量的这个属性?它非常不一致..我认为 project_results 在通过代码之前已完全填充...因为它通过了状态检查,我们知道 project_results 变量中至少有一些数据..
app.get('/user/projects/:project_id', function(req, res, next) {
var agent = superagent.agent();
var project = {};
project.id = req.params.project_id;
agent
.get(apihost + '/api/project/'+project.id)
.set('api_key', apikey)
.set('access_token', user.access_token)
.end(function(project_error, project_results) {
if (project_error) {
console.log(project_error);
}
if(project_results.status == '200') {
project = JSON.parse(project_results.text);
// Check if we are the owner of the project
if(project.creator == req.signedCookies.user_3rb._id) {
project.owner = true;
}
......