我遇到了一个奇怪的问题。第一个路由正在工作,但参数化路由返回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。
答案 0 :(得分:1)
.get(function (req, res, next, id) {
res.send('Vehicle: ' + id);
})
这显然不起作用。我不确定http方法是否检查函数的arity,但这确实有效:
.get(function (req, res, next) {
res.send('Vehicle: ' + req.params.id);
})
我不记得我在哪里看过这个例子,但希望这对某人有帮助。