初学express关于 mount 和 param 的疑问?
var express = require('express');
var app = express();
// customizing the behavior of app.param()
app.param(function(param, option) {
return function (req, res, next, val, val1) {
console.log("-----------"+param);
console.log(val1); //id , page
// if (val == option) {
// next();
// }
// else {
// res.sendStatus(403);
// }
next();
}
});
// using the customized app.param()
app.param(['id','page'], [1337,1]);
// route to trigger the capture
app.get('/user/:id/:page', function (req, res) {
res.send('OK');
})
app.listen(3000, function () {
console.log('Ready');
})
以上代码不解的地方:
- function (req, res, next, val, val1){} 这里的val是访问两次依次赋值 1337 和 1 ,这个 val 不用定义直接返回当前参数么 ? lz是从文档和例子中知道的,但不知道这个 val 如何被赋值的? 所以在后面加个 val1 但返回的确是 id 与 page
- 上面那条语句有没有方法能让val等于 [1337,1] ?不用调用两次
var express = require('express');
var app = express();
var admin = express();
admin.on('mount', function (parent) {
console.log('Admin Mounted');
console.log(parent); // refers to the parent app
});
admin.get('/', function (req, res) {
res.send('Admin Homepage');
});
app.use('/admin', admin);
app.use('/', function (req, res) {
res.send('Admin Homepage1');
});
app.listen(3000);
对这个例子的理解,是因为 app.use(’/admin’, admin); 引用了 admin ,所以 mount 事件被触及,但不明白打印的parent是啥意思?
谢谢
2 回复
q1:The following section describes app.param(callback), which is deprecated as of v4.11.0. q2:也许parent就是指app呢
@zstxt1989 谢谢 所以打印出来的就是app的信息