我遇到了一个奇怪的问题。第一个路由可以工作,但参数化路由返回 404 错误。
var express = require('express');
var router = express.Router();
router.route('/')
.get(function (req, res, next) {
res.send('A list of vehicles.');
})
.post(function (req, res, next) {
res.send('You added a vehicle!');
});
router.route('/:id')
.get(function (req, res, next, id) {
res.send('Vehicle: ' + id);
})
.put(function (req, res, next, id) {
res.send('You edited vehicle: ' + id);
});
如果我添加这条路线:
router.route('/test')
.get(function (req, res, next) {
res.send('This is a test.');
});
...我可以到达那个终点。这似乎也适用于我正在使用的另一个路由器,该路由器使用 router.get(path, function)
和 router.post(path, function)
而不是router.route(path).get()...
方法。
我在这里遗漏了一些明显的东西吗?我正在使用 Express ~4.12。
最佳答案
哎呀,我是个白痴。刚刚想通了这一点。我看到一个使用此函数签名的示例:
.get(function (req, res, next, id) {
res.send('Vehicle: ' + id);
})
这显然行不通。我不确定 http 方法是否检查函数的数量,但这确实有效:
.get(function (req, res, next) {
res.send('Vehicle: ' + req.params.id);
})
我不记得在哪里看到过这个例子,但希望这对某人有帮助。
关于javascript - Express 4 路由器.route : route not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31189936/