Почему console.log появляется дважды в app.js в nodejs - PullRequest
0 голосов
/ 02 марта 2019

Я написал код в NodeJS, где, когда я нажимаю на URL, мне нужно, чтобы сервер прошел через три функции промежуточного программного обеспечения: аутентификацию, куки, ведение журнала.Здесь это происходит, но консоль печатается дважды.Можете ли вы помочь мне выяснить, почему.

var express                =   require('express');
var app                    =   express();
var router                 = require('express').Router();

/* Add the middleware to express app */



app.use (function authentication(req,res,next){
    if(req.method === 'GET'){

        console.log("Inside Authentication.js")
        next();  // If your don't use next(), the mmand won't go to the next function.
      }
      else{
          console.log("Inside else Authentication.js")

      }
})

app.use( function cookies(req,res,next){
    if (req.method === 'GET'){
        console.log("Inside cookies.js")
       next();

    }
    else
    {
        console.log("Inside else cookies.js")

    }
})


 app.use(  function logging(req,res,next){
        if(req.method === 'GET'){
            console.log("Inside Logging.js");
            next();

        }
        else{
           console.log("Inside else of Logging.js");

        }
    })



app.use(function(req,res) {
    res.send('Hello there !');
});

app.listen(8080);

o / p -

E:\NodeJSProject\middleware>node app.js
Inside Authentication.js
Inside cookies.js
Inside Logging.js
Inside Authentication.js
Inside cookies.js
Inside Logging.js

1 Ответ

0 голосов
/ 02 марта 2019

Ваш браузер выполнит предварительный запрос CORS (т. Е. Запрос OPTION), чтобы узнать, разрешено ли вам выполнять запрос.

С вашей точки зрения, это всего лишь один запрос, но браузервыполняет два запроса, и ваш экспресс-сервер выполняет оба запроса в полном объеме.

Учитывая, что вы используете express, имеется промежуточное программное обеспечение для конкретной обработки этих запросов.

См. здесьдля документации.

Если вы хотите вообще избежать запроса CORS, ваш веб-сайт и API должны обслуживаться с одного хоста, порта и протокола.

ВыВы можете прочитать больше о CORS здесь , или вы можете искать в стеке - там много постов.

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