Node.js async.series/async.瀑布是否在post方法中工作?

Node.js async.series/async.瀑布是否在post方法中工作?,node.js,asynchronous,post,async.js,Node.js,Asynchronous,Post,Async.js,我在post方法中使用了async.series,但它似乎不起作用,当调用post请求时,页面显示404未找到 router.route('/brandinsert') .post((req, res, next) => { console.log("inside post"); //terminates here async.series({ one: (callback) => { uploadImageOne(req, r

我在post方法中使用了async.series,但它似乎不起作用,当调用post请求时,页面显示404未找到

router.route('/brandinsert')
.post((req, res, next) => {
    console.log("inside post"); //terminates here
    async.series({
        one: (callback) => {
            uploadImageOne(req, res, (err) => {
                console.log('Inside uploadImageOne');
                callback(req, res, err);
            });
        },

        two: (callback) => {
            uploadImageTwo(req, res, (err) => {
                console.log('Inside uploadImageTwo');
                callback(req, res, err);
            });
        },
    }, (req, res, err) => {
         console.log('Inside req,res,err'); //does not reach here
        if(err){
            console.log('error :' + err); //does not reach here
            if (err == 'Error: imageExtensionError') {
                res.json({
                    status: false,
                    msg: "File has invalid extension"
                });
            } else if (err == "Error: File too large") {
                res.json({
                    status: false,
                    msg: "File size exceed the limit,Allowed limit is 3 MB"
                })
            } else {
                console.log("err else section:" + err);
                res.json({
                    status: false,
                    msg: genericErrorMessage
                })
            }
        }else{
            console.log("Inside else of insert");
            let brandHeaderImg = req.body.brandHeaderImg;
            let brandLogoImg = req.body.brandLogoImg;
            let errorArray = [];
            let msg = null;
            //insert images into db
        }
    });
})

我不明白我做错了什么,有人能帮我吗?我是node.js的新手,如果这些问题看起来很愚蠢,请原谅。

异步库中的回调需要调用为:

callback(err, arg1, arg2, arg3);
首先是
err
参数,然后是其他可选参数。如果没有错误,并且希望继续处理,则传递错误的
null

callback(null, arg1, arg2, arg3);

仅供参考,Javascript开发的趋势是“promisify”所有异步操作(创建一个返回承诺的包装器,而不是使用普通回调),然后使用承诺和
async/await
功能进行异步控制流和错误处理。我强烈建议以这种方式编写新代码,而不是在传统回调中使用异步库


节点v10甚至包括一个预期版本的
fs
库,现在越来越多的节点内部正在使用promises和
async/await

底部回调中的任何代码是否使用
res
创建响应?是的,
async.series()
async.瀑布()
在路由处理程序中工作正常(如果您正确使用它们)。如果我们能看到这个路由器处理程序的所有真实代码,我们会有更好的帮助。只有很少的真实代码,我们所能做的就是猜测。这是我的第一个猜测。是否在
.post()
处理程序中调用
next()
?如果是这样的话,在异步代码完成之前,这将进入默认的404处理程序。如果您自己发送响应,并且不希望发生进一步的路由,则不要调用
next()
@PatrickRoberts请检查我刚才所做的编辑,这根本没有帮助。它仍然只是伪代码。您可以在
async.series()
调用的完成回调中放置
console.log()
,以查看它是否到达那里。我们无法进行任何测试。@jfriend00不,我没有在
内调用next。post()
我更改了调用异步库的方式,但问题仍然存在。我同意你关于承诺的趋势。但我想用async.series或async.failter实现它