"next('route')" 不适用于“.use()”
"next('route')" doesn't work with ".use()"
我是不是做错了什么,或者表达不支持 next('route')
和 .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
这服务于字符串 sigma
并且应该服务于字符串 alpha
.
更新:刚刚试过了,但效果不佳。
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
更新,这也是:
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
我能分辨出 .all 和 .use 之间的唯一区别是 .use 默认路径为 /
。
所以这有效:
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
根据 node issue #2591 中的讨论:由于 app.use()
定义了中间件,而不是 "route",因此 next('route')
与 app.use()
一起使用时没有意义。
我是不是做错了什么,或者表达不支持 next('route')
和 .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
这服务于字符串 sigma
并且应该服务于字符串 alpha
.
更新:刚刚试过了,但效果不佳。
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
更新,这也是:
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
我能分辨出 .all 和 .use 之间的唯一区别是 .use 默认路径为 /
。
所以这有效:
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
根据 node issue #2591 中的讨论:由于 app.use()
定义了中间件,而不是 "route",因此 next('route')
与 app.use()
一起使用时没有意义。