¿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