Как передать значение из одного маршрута в другой в Express? - PullRequest
0 голосов
/ 09 января 2020

У меня есть простой маршрут, который делает запрос POST и возвращает объект с несколькими значениями. Я хочу использовать одно из возвращаемых значений в другом (другом) маршруте для разных логик c. Есть ли способ передать такие данные с одного маршрута на другой?

router.post('/register', (req, res, next) => {

    // call some function that returns an object for use in another route eg:
    myFunction()
    .then((data) => {
        console.log(data)
    })
    .catch((err) => {
        console.log(err)
    })
});

router.post('/verify', (req, res, next) => {

    // use the data returned from the register route for verification logic 

});



Ответы [ 2 ]

0 голосов
/ 09 января 2020

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

0 голосов
/ 09 января 2020

Вы можете использовать npm пакет connect-fla sh для передачи данных между маршрутами

var express = require('express');
var flash = require('connect-flash');
var app = express();
app.use(flash());

app.get('/login', function(req, res){
  // Set a flash message by passing the key, followed by the value, to req.flash().
  req.flash('username', 'Gaurav Gupta')
  res.redirect('/profile');
});

app.get('/profile', function(req, res){
  // Get an array of flash messages by passing the key to req.flash()
  let message = req.flash('username')
  res.render('index', { message: message }); // or {message} only es6 feature
});

Или же вы можете использовать промежуточное ПО на маршрутах

т.е.

router.post('/register', middleware(), (req, res) => {
   ...
});

// определение промежуточного программного обеспечения

function middleware(){
  return function(req, res, next){
    ...perform actions
    next()
  }
}

// повторное использование промежуточного программного обеспечения в маршруте

router.post('/verify', middleware(), (req, res) => {
   ...
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...