当一条路线 "blocks" 另一条路线时该怎么办?

What to do when one route "blocks" another?

我正在使用 nodejs(与 sailsjs),我遇到了路由问题,情况如下:

但是,当我用 AJAX 请求调用 '/user/find/' 时,我得到 404 错误;我猜这是因为它仍然链接到 "show profile" 操作,并且该操作找不到名为 "find".

的用户

这种冲突在框架之间是否普遍?有办法解决这个问题吗?我试过切换我声明路由的顺序,但响应是一样的。我想如果用户使用用户名 'find' 注册也可能会引起冲突,在这种情况下,我将如何处理?还是我应该使用完全不同的路线?

我喜欢/user/find,因为这个名字很直白

谢谢。

当您在 app.js 或您提交的任何文件中声明路线时,订单很重要。

app.get("/user/find", function (request, response) {
    //do something
});

app.get("/user/:variable", function (request, response) {
    //do something
});

在上面的例子中,/user/find 优先于 /user/:variable,因为它先声明。如果您需要这样做,我建议您使用声明的顺序。如果你将它切换到以下它应该工作。

app.get("/user/:variable", function (request, response) {
    //do something
});

app.get("/user/find", function (request, response) {
    //do something
});