TypeError:undefined不是node.js / express.js中的函数
我得到了以下错误:TypeError:undefined不是一个函数
callback(null,array_reply,threadResults);
这部分看起来不好,但我不知道为什么。
我需要你的帮助。 谢谢
async.waterfall([ function (callback) { Model.find() .limit(10) .sort({pushed_date: 'desc'}) .exec( function (err, results) { if (err) { log('Error: ' + err.message); callback(err); return; } var array_reply = new Array(); async.forEachSeries(results, function (result, callback) { var reply = result.replies[result.replies_count]; array_reply.push(reply); },callback); callback(null, array_reply); }); }, function (array_reply, callback) { Model.find() .limit(10) .sort( {replies_count: 'desc'} ) .exec( function (err, results) { if (err) { callback(err); return; } callback(null, array_reply, results); }); } ], function (err, array_reply, results) { if (err) { console.error("Error!"); return next(err); } res.render("aaa.hbs",{ models: results, posts: array_reply }); })
我改变了我的源代码。
async.waterfall([ function (callback) { Model.find() .limit(10) .sort({pushed_date: 'desc'}) .exec( function (err, results) { if (err) { log('Error: ' + err.message); callback(err); return; } var array_reply = new Array(); async.forEachSeries(results, function (result, callback) { var reply = result.replies[result.replies_count]; array_reply.push(reply); },callback); callback(null, array_reply); }); }, function (array_reply, callback) { Model.find() .limit(10) .sort( {replies_count: 'desc'} ) .exec( function (err, results) { if (err) { callback(err); return; } if (results.length > 0) { res.render("aaa.hbs",{ models: results, posts: array_reply }); } else { res.render("aaa.hbs",{ models: null, posts: array_reply }); } }); } ], function (err) { if (err) { console.error("Error!"); return next(err); } })
有callback双重调用(可能会导致问题):
async.forEachSeries(results, function (result, callback) { var reply = result.replies[result.replies_count]; array_reply.push(reply); },callback); callback(null, array_reply);
我想可能是这样的:
async.forEachSeries(results, function (result, callback) { var reply = result.replies[result.replies_count]; array_reply.push(reply); }, function(err) { callback(err, array_reply); });