初学express关于 mount 和 param 的疑问? - CNode技术社区

初学express关于 mount 和 param 的疑问?
发布于 10 年前 作者 Web-Kevin 4503 次浏览 最后一次编辑是 9 年前 来自 问答
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');
}) 

以上代码不解的地方:

  1. function (req, res, next, val, val1){} 这里的val是访问两次依次赋值 1337 和 1 ,这个 val 不用定义直接返回当前参数么 ? lz是从文档和例子中知道的,但不知道这个 val 如何被赋值的? 所以在后面加个 val1 但返回的确是 id 与 page
  2. 上面那条语句有没有方法能让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的信息

回到顶部

AltStyle によって変換されたページ (->オリジナル) /