【发布时间】:2015-12-11 20:35:15
【问题描述】:
我使用节点expressRouter模块,它是route()方法。
我需要接受一个可选参数,这样:
var express = require('express');
var router = express.Router();
router.route('/verb/:optionalParameter').get(function(req, res, next) {
// ...
}
如何指定optionalParameter?
我确实尝试过:
router.route('/verb/:optionalParameter*?').get(function(req, res, next) {
和
curl -X GET -H "Accept: application/json" http://localhost:3000/verb/option1
工作得很好,但是
curl -X GET -H "Accept: application/json" http://localhost:3000/verb
吐出 404...
我确定我遗漏了一些明显的东西...... :-( 有什么线索吗?
【问题讨论】:
-
您是否尝试删除路由 url 中的星号?像这样:
router.route('/verb/:optionalPatrameter?').get(function(req, res, next) {而不是:router.route('/verb/:optionalPatrameter*?').get(function(req, res, next) { -
@Mayas: 这不是关于
express Router模块... ;-( -
刚刚试过:同样的 404... :-(
-
你是对的。你为什么不这样做呢?
var express = require('express'); var router = express.Router(); var app = express() app.route('/verb/:optionalParameter?').get(function(req, res, next) { console.log('hello world') })我刚试了一下,我也得到了 /verb/1 和 /verb/ 的“hello world”。