我有以下端点来访问我的会话的实例:
<base-url>/sessions/<id>
我尝试使用以下行捕获对此端点的请求:
router.patch("/sessions/:id", tryLogout);
我可以在浏览器中看到使用了正确的端点:
<base-url>/sessions/117
然而,快递返回404 -
当我现在添加*时:
router.patch("/sessions/:id*", tryLogout);
它工作正常。这个版本不适合我,因为它也会匹配像/ sessions / 111 / user这样的端点,这不是重点。
我该如何解决这个问题,只抓住我需要抓到的东西?
更新
评论后我几乎没有更新。 我试图简化问题,但可能存在问题。我正在使用两级快速路由器。
在主网络服务器应用中:
var app = express();
app.use("/api/admin", admin_router); // this should sent all the admin-requests to a subrouter admin_router
admin_router的相关(工作)代码:
var router = express();
router.patch("/sessions/:id*", tryLogout); // sends 404 without the *
在前端,我使用Backbone模型发送请求。相关的代码:
...Backbone.Model.extend({
urlRoot: "api/admin/sessions",
idAttribute: "id",
logout: function(callback) {
var attr = {
// sets the atts here
}
this.save(attr,{
patch: true,
success: function(data) {
callback(null, data)
},
error: function(err) {
// error handling
}
});
} // logout()