【问题标题】:Get methods for same URL with different data passed on in Node/Express获取在 Node/Express 中传递不同数据的相同 URL 的方法
【发布时间】:2018-05-04 07:02:10
【问题描述】:

所以,我试图在不同场景下为同一个 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 方法的优先级?

【问题讨论】:

  • 第一种和第二种情况有什么区别?什么情况怎么查?
  • @hurricane 第一种情况是当我们想要访问特定页面时。第二种情况基本上是在我提交表单后,我想重定向到同一页面但内容不同。我正在尝试通过传递数据来访问不同的内容。

标签: javascript node.js rest express web


【解决方案1】:

首先你不能为两个不同的工作使用相同的字符串名称。

您可以使用参数或查询来做到这一点。我为您创建了一个带有参数的示例。您可以为您的场景更改开关盒。

参数

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

【讨论】:

  • “两个不同工作的相同字符串名称”是什么意思?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-28
  • 2016-01-06
  • 1970-01-01
  • 2019-03-22
  • 1970-01-01
相关资源
最近更新 更多