“Next (‘route’)” no funciona con “.use ()”

¿Estoy haciendo algo mal aquí, o Express simplemente no es compatible con next('route') con .use() ?

 var express = require('express') var app = express() app.use([ function (req, res, next) { return next('route') }, function (req, res, next) { return res.send('sigma') }, ]) app.use(function (req, res, next) { return res.send('alpha') }) module.exports = app 

Esto sirve a la cadena sigma y debe servir la cadena alpha .

Actualización: solo probé esto y no funcionó tan bien.

 var express = require('express') var app = express() app.use('/', [ function (req, res, next) { return next('route') }, function (req, res, next) { return res.send('sigma') }, ]) app.use('/', function (req, res, next) { return res.send('alpha') }) module.exports = app 

Actualizar, esto también:

 var express = require('express') var app = express() app.use(function (req, res, next) { return next('route') }, function (req, res, next) { return res.send('sigma') }) app.use(function (req, res, next) { return res.send('alpha') }) module.exports = app 

De acuerdo con la discusión en el problema de nodo # 2591 : dado que app.use() define middleware y no una “ruta”, next('route') tiene sentido cuando se usa con app.use() .

La única diferencia que puedo distinguir entre .all y .use es que .use utiliza de forma predeterminada la ruta a / .

Así que esto funciona:

 var express = require('express') var app = express() app.all('/', [ function (req, res, next) { return next('route') }, function (req, res, next) { return res.send('sigma') }, ]) app.all('/', function (req, res, next) { return res.send('alpha') }) module.exports = app