javascript - 类型错误:undefined 不是 node.js/express.js 中的函数

标签 javascript node.js express callback typeerror

我收到以下错误:TypeError: undefined is not a function

回调(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 double call(可能有问题):

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);
        });

关于javascript - 类型错误:undefined 不是 node.js/express.js 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20394261/

相关文章:

javascript - html 上的表单提交(获取请求)转到空白页面,并且当 Node 服务器中的 console.log 时没有任何记录

javascript - 使用 push() 时出现 Mongoose 错误

node.js - 测试快速路线方法

node.js - 查找两个文档的日期差异

javascript - 为什么这个递归函数不停止?

javascript - 创建 JS 库警告而不是错误

javascript - Javascript 中的正则表达式 vcf

javascript - 是否可以格式化对象内的日期?

javascript - 我如何使用 React-Bootstrap 的 React for Switch Buttons 在 map 中设置 onchange?

node.js - 如何包装 axios 函数并让父级等待?