【问题标题】:Routes don't work in Express路线在 Express 中不起作用
【发布时间】:2018-01-31 02:11:26
【问题描述】:

我有两条路线/emails/eamils/:id

var createRouter = function() {
  var router = express.Router();

  router.route('/emails/:id').get((req, res) => {
    console.log('get=>/emails/id');
  });

  router.route('/emails').get((req, res) => {
    console.log('get> /emails');
  });

  return router;
}

每当发送下一个请求时,都会调用第二个处理程序:

GET http://localhost:4000/rest-api/emails/?id=59

第一个采用id 参数的方法永远不会起作用。我该如何解决这个问题?

【问题讨论】:

  • 您能提供更多信息吗? 从不工作是什么意思?您如何发送请求?
  • 你知道你可以做到 .get("/emails",(req,res)=>...)
  • 您的意思是忘记console.log('get> /emails); 之后的单引号吗?只是想确保这不是一个非常简单的错误输入。

标签: javascript node.js express parameters routes


【解决方案1】:

http://localhost:400/rest-api/emails/59 是正确的。您使用的是 params 而不是 queries

如果你想使用查询,它们的用法在? 符号之后是这样的。

http://localhost:400/rest-api/emails?id=59

【讨论】:

    【解决方案2】:

    你需要使用:

    http://localhost:4000/rest-api/emails/59
    

    查询参数不计算在内。

    【讨论】:

      【解决方案3】:

      正确的网址应该是:

      http://localhost:4000/rest-api/emails/59
      

      而不是:

      http://localhost:4000/rest-api/emails/?id=59
      

      这里 id 是查询参数。

      【讨论】:

        猜你喜欢
        • 2017-07-15
        • 2017-07-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-21
        • 2017-10-02
        • 2019-07-19
        • 2014-05-16
        • 2013-11-20
        相关资源
        最近更新 更多