2015-09-06 2 views
1

Est-ce que je fais quelque chose de mal ici, ou n'exprime-t-il tout simplement pas de support next('route') avec .use()?"next ('route)" ne fonctionne pas avec ".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 

Cela sert la chaîne sigma et devrait serveur la chaîne alpha.

Mise à jour: juste essayé ceci et cela n'a pas fonctionné aussi 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 

Mise à jour, cela aussi:

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 

Répondre

0

Selon la discussion en node issue #2591: depuis app.use() définit le middleware, et non une "route", next('route') n'a pas de sens lorsqu'il est utilisé avec app.use().

0

La seule différence que je peux dire entre .tous et .use est que par défaut .Utilisation le chemin d'accès à /.

ceci marche:

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