最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

什么是后期的NodeJS方法的第二个参数

运维笔记admin18浏览0评论

什么是后期的NodeJS方法的第二个参数

什么是后期的NodeJS方法的第二个参数

在我的代码我写这样的代码

 router.post('/', publicShare, function(req, res, next) {

我检查documents,但没有找到,为什么第二PARAM publicShare是在这里吗?

publicShare是长得像

var publicShare = function(req, res, next) {
    if (condition1) {
        if (condition2) {
            res.status(400).send({success:false});
        } else {
            next();       
        }
    } else {
        if (condition3) {
            res.status(401).send({success:false});
        } else
            next();
    }
};

请帮我明白了。

回答如下:

您可以检查route handlers其接受回调的阵列,只是表现得像一个中间件。从该文档例如:

app.get('/example/d', [cb0, cb1], function (req, res, next) {

所以,你的情况publicShare可以回调的阵列,或只是一个回调,其签名仅仅是一个回调接受reqresnext作为参数。所以,你也可以像使用:

app.get('/', function(req, res, next){}, function(req, res, next){}, ...

而对于更容易,你可以使用回调的数组:

app.get('/',[cb1, cb2, cb3])

其中CB1,CB2,CB3和与请求,响应和下一参数的回调。它允许你运行一个接一个。 CB1 - >做日志1,那么CB2 - >做日志2,CB3 - >做日志3等。

我会用一个例子简化这个:

你会要求水。

1)CB1:购买一瓶水。

2)CB2:添加在桶或罐几滴水。

3)CB3:煮沸。

然后,轮到你了。喝!

发布评论

评论列表(0)

  1. 暂无评论