Что является вторым параметром в postj методе nodejs - PullRequest
0 голосов
/ 09 февраля 2019

В моем коде есть код, написанный следующим образом:

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

Я проверяю документы , но не нашел, почему здесь второй параметр 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();
    }
};

Пожалуйста, помогите мне понять.

Ответы [ 3 ]

0 голосов
/ 09 февраля 2019

publicShare метод в вашем маршруте - это экспресс-функция промежуточного программного обеспечения. Согласно документам

Функции промежуточного программного обеспечения - это функции, которые имеют доступ к объекту запроса (req), объекту ответа (res)и следующая функция промежуточного программного обеспечения в цикле запроса-ответа приложения

Промежуточное программное обеспечение проверяет определенные условия или критерии, которые должны применяться к вашему объекту запроса и ответа, если критерии удовлетворяют, тогда выполняется следующая операция

1-Завершить цикл ответа на запрос

2-Вызвать следующую функцию промежуточного программного обеспечения в стеке.

Вы можете обратиться кдокументы для получения дополнительной информации - https://expressjs.com/en/guide/using-middleware.html

0 голосов
/ 09 февраля 2019

Вы можете проверить обработчики маршрутов , которые принимают массив обратных вызовов, который просто ведет себя как промежуточное ПО.Пример из документов:

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

Итак, в вашем случае publicShare может быть массивом обратных вызовов или просто обратным вызовом, подпись которого является просто обратным вызовом, принимающим req, res и nextв качестве параметра.Итак, вы также можете использовать как:

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

А для простоты вы бы использовали массив обратных вызовов:

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

Где cb1, cb2 и cb3 - это обратные вызовы с запросом, ответ и следующие параметры.Это позволяет вам запускать один за другим.cb1 -> do log 1, затем cb2 -> do log 2, cb3 -> do log 3 и т. д.

Я бы упростил это на примере:

Вы бы запросили воду.

1) cb1: Купите банку с водой.

2) cb2: Добавьте несколько капель воды в ведро или банку.

3) cb3: отварить.

Тогда ваша очередь.Пить!

0 голосов
/ 09 февраля 2019

Согласно документации , вы можете добавить несколько функций промежуточного программного обеспечения, разделенных запятыми.Переменная publicShare должна быть функцией промежуточного программного обеспечения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...