节点 express.Router().route(/verb/:optionalParameter)?

Node express.Router().route(/verb/:optionalParameter)?

我用的是节点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...

我确定我遗漏了一些明显的东西... :-( 有什么线索吗?

响应是 404,因为不存在路由 /verb,只有 /verb/:optionalParameter.

为了作品,需要创建另一条路线:

var express = require('express');
var router = express.Router();

router.route('/verb/:optionalParameter').get(function(req, res, next) {
  // ...
}

// route localhost:3000/verb
router.route('/verb').get(function(req, res, next) {
  // ...
}

然后尝试:

curl -X GET -H "Accept: application/json" http://localhost:3000/verb

试试这个:

var express = require('express')
var router = express.Router()
var app = express()
app.route('/verb/:optionalParameter?').get(function(req, res, next) { console.log('hello world') })