【发布时间】:2015-06-27 14:40:55
【问题描述】:
使用 Express 路由器时,可以提供路由前缀:
var router = new Express.Router();
app.use("/scope", router);
假设我的路由器中有一些 CRUD 路由。
router.post("/", function(req, res) {
var result = create(req);
res.redirect(result.id);
});
router.put("/:id", function(req, res) {
var result = update(req);
res.redirect(result.id);
});
router.get("/:id", function(req, res) {
var result = findById(req.params.id);
res.render("show.html", {data: result});
});
当向上面的 PUT 请求时,响应应该是重定向到“/scope/[id]”。当请求 POST 时,响应是重定向到“/[id]”而不是之前的结果。
我不确定在哪里找到问题的根源,也不知道如何纠正它。
【问题讨论】:
-
你用的是什么版本的快递?
-
还有两个问题:(1)你有
strict routing启用还是禁用? (2) 你能知道POST的来源吗? -
我使用的是 Express 4.11.2,并且没有更改默认的“禁用”的严格路由。不过,自从发布这个问题以来,我对表单提交方法进行了一些更改,并包含了“方法覆盖”中间件。该问题已在这些更改中得到解决。不幸的是,我正在处理一个脏分支并且没有在版本控制中捕获问题状态,并且不倾向于手动回拨我的更改,直到问题再次出现。
-
不用担心。我会根据你提供的信息来回答。