因此,我试图在不同的情况下为同一URL获取不同的数据。这是我的代码。

第一种情况:

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


第二种情况:

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


但是,由于某种原因,它总是执行第一种情况(仅传递数据:'a')。如何针对特定情况对每种get方法进行优先级排序?

最佳答案

首先,您不能为两个不同的作业使用相同的字符串名称。

您可以使用参数或查询来实现。我为您创建了一个带有参数的示例。您可以根据情况更改开关盒。

参数

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"}
});

09-20 23:56