【问题标题】:Node JS route not firing with multiple segments节点 JS 路由没有触发多个段
【发布时间】:2013-06-07 18:49:29
【问题描述】:

好的,所以我不确定为什么会发生这种情况。我试着搜索这个,但我不知道如何措辞——比如“多个 url 段不触发路由”。 ?

不管怎样,我们都去......

使用 node.js 和 Express:我的 app.js 中有一条如下所示的路由:

app.get('/kosk/:id/:key', kosk.kosk);

如果我然后转到 (http://my.nodeserv.com:8080/kosk/451/123456),我会从服务器收到 404 未找到。

但是如果我这样做:

app.get('/kosk/:id', kosk.kosk);

然后去这里 (http://my.nodeserv.com:8080/kosk/451) - 一切正常,路由触发,我得到我的参数。

路由中的代码是设置来处理进来的物品的,但是不明白为什么这种格式的路由没有触发。再次,节点以 404 not found 多段 url 回复。有任何想法吗?我希望我只是错过了一些简单的东西并且看不到它。提前感谢您的任何帮助/想法!

【问题讨论】:

    标签: node.js express routes


    【解决方案1】:

    根据您的 sn-p 它应该可以工作。您可能想通过确保以下工作来验证它不是别的东西:

    app.get('/foo/:bar/:baz', function(req, res) {
      res.json({
        bar: req.params.bar,
        baz: req.params.baz                                                                                      
      });
    });
    

    向http://localhost:3000/foo/123/456 发送GET 请求应回复:

    {
      "bar": "123",
      "baz": "456"
    }
    

    我只是通过创建一个新的 express 项目并为理智定义上述路线来做到这一点。它对我来说效果很好,所以我认为它可能是你的 app.js/server.js 文件的其他部分给你这个问题。

    【讨论】:

    • 非常感谢 - 仍然习惯 Node,所以没想到要尝试。这在我的应用程序中恢复正常,并导致我遇到了真正的问题 - 这是我的函数在被触发的路由中的返回值的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2013-09-12
    • 1970-01-01
    • 2012-01-27
    • 2016-06-08
    • 1970-01-01
    相关资源
    最近更新 更多