Как правильно остановить / выйти из маршрута node.js? - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть маршрут node.js / express, который сначала проверяет, установлен ли файл cookie.

Это работает хорошо, теперь я хочу выйти из маршрута, если файл cookie не установлен.

Мой маршрут выглядит следующим образом

app.post('/VerEmpresas', function(req, res) {


  if(req.cookies.cookieName1) {
    var cookie = JSON.parse(req.cookies.cookieName1);

    if (!cookie || cookie.codigo != 0) {
      console.log('error' + cookie.codigo);
    } 

    if (cookie && cookie.codigo == 0) {
      console.log('ok' + cookie.codigo);
    } 
  } else {

    console.log('no cookie');
  }


});

Я предполагаю, что могу заменить console.log ('ok') своей обычной задачей, такой как вызов базы данных knex (), и разрешить разрешить res.send там.

Есть ли правильный способ удалить маршрут, если нет файла cookie, чтобы код после не выполнялся?

Ответы [ 2 ]

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

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

Для приведенного выше кода вы можете попробовать что-то вроде этого:

function checkCookie (req, res, next) {
  if(req.cookies.cookieName1) {
    var cookie = JSON.parse(req.cookies.cookieName1);
    if (cookie && cookie.codigo == 0) {
      next();
    } else {
      return res.status(401).send('error' + cookie.codigo);
    }
  } else {
    return res.status(401).send('no cookie');
  }

})


app.post('/VerEmpresas', checkCookie, function(req, res) {
   // Implement your business logic here in place of console.log('ok');
});

//If you want this middleware for all the routes
//You can use the function like this app.use(checkCookie);

В приведенном вышеВ коде вы можете видеть, что в случае, если cookie найден и действителен, мы вызываем следующий вместо отправки ответа, что означает, что он перейдет к следующей задаче в конвейере маршрута.

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

В остальной части вы просто отправляете ответ об ошибке.Или return

if (req.cookies.cookieName1) {
  var cookie = JSON.parse(req.cookies.cookieName1);
  if (!cookie || cookie.codigo != 0) {
    console.log('error' + cookie.codigo);
  }
  if (cookie && cookie.codigo == 0) {
    console.log('ok' + cookie.codigo);
  }
} else {
  res.status(401).send('error, no cookie'); // or return
  console.log('no cookie');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...