我是node.js的新手,这是我的情况,我使用async运行3个函数,然后获取结果并尝试渲染使用把手的页面。我收到错误:
"avatar":data.avatar,
它表示数据未定义,但如果我console.log(data.avatar)
数据被打印,但它会在同一行console.log
处引发错误
TypeError:无法读取属性' avatar'为null
现在疯狂的是,如果我发表评论"tweets": tweets
或者我没有使用"推文"在车把页面中的字段,它没有任何错误!
app.get('/user/:user', isLoggedIn, function(req, res, next){
var username = req.params.user;
var data = {};
var tweets = {};
async.series([
function(callback){
Tweet.find({ $or : [{"username":username}, {"retweeted_by":username}] }).sort({"created_at":-1}).exec(function(err, posts){
if (err) res.redirect('/');
tweets = posts;
callback();
});
},
function(callback){
User.findOne({"username":username}).exec(function(err, user){
if (err) res.redirect('/');
data = user;
callback();
});
},
function(callback){
User.findOne({ $and: [{"username":req.user.username}, {"follows": {"username":username}}] }).exec(function(err, foll){
if (foll){
if (foll.follows.length > 0)
data.do_we_follow = true;
}
callback();
});
}
], function(err, results){
console.log(data.avatar);
return res.render('user', {
"user":username,
"avatar":data.avatar,
"cover":data.cover,
"numOfPosts":tweets.length,
"numOfFollowing":data.numOfFollowing,
"following":data.do_we_follow,
"username":req.user.username,
"myavatar":req.user.avatar,
"tweets": tweets
});
});