Получить методы для одного и того же URL с различными данными, передаваемыми в Node / Express - PullRequest
0 голосов
/ 04 мая 2018

Итак, я пытаюсь получить разные данные в разных сценариях для одного и того же URL. Вот мой код

1-й сценарий:

app.get('/upload', function(req, res) {
    res.render('upload', {data: 'a'});
});

2-й сценарий:

res.redirect('/upload');
app.get('/upload', function(req, res) {
    res.render('upload', {data: 'b'});
});

Однако по какой-то причине он всегда выполняет 1-й сценарий (только передает данные: 'a'). Как расставить приоритеты каждого метода get для конкретной ситуации?

1 Ответ

0 голосов
/ 04 мая 2018

Прежде всего вы не можете использовать одно и то же имя строки для двух разных заданий.

Вы можете сделать это с помощью параметров или запроса. Я создал пример с параметрами для вас. Вы можете изменить регистр переключения для своего сценария.

Params

app.get('/upload/:scenario', function(req, res) {
  let resultData = {};
  switch (req.params.scenario) {
    case '1':
      resultData = {
        data: 'a'
      };
      break;
    case '2':
      resultData = {
        data: 'b'
      };
      break;
    default:
      resultData = {
        error: 'wrong id'
      };
  }
  res.render('upload', resultData);
  // http://localhost/api/upload/1 -> {"data":"a"}
  // http://localhost/api/upload/2 -> {"data":"b"}
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...