/ / Node express.Router (). Route (/ verb /: optionalParameter)? - node.js, express, routes

Node express.Router (). Route (/ verb /: optionalParameter)? - node.js, express, routes

J'utilise noeud express Router module, et c'est "s route() méthode.

J'ai besoin d'accepter un paramètre optionnel, de cette façon:

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

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

Comment puis-je spécifier optionalParameter?
J'ai essayé:

router.route("/verb/:optionalParameter*?").get(function(req, res, next) {

et

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

fonctionne très bien, mais

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

crache un 404 ...

Je suis sûr que je manque quelque chose d'évident ... :-( Un indice?

Réponses:

1 pour la réponse № 1

La réponse est "404" car il n’existe pas de route /verb, seulement /verb/:optionalParameter.

Pour les travaux, il faut créer un autre itinéraire:

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) {
// ...
}

Et essaye:

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

0 pour la réponse № 2

Essayez plutôt ceci:

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