ExpressJS 世界中的大多数此类事情都是使用中间件完成的:
1)在middlewares文件夹中创建js文件:populateUserData.js:
'use strict';
module.exports = (req, res, next) => {
if(!req.user) req.user = {};
req.user.someData = 'something';
next();
}
2.1) 附在护照后:
app.use(passport.initialize());
app.use(passport.session());
app.use(require('./middlewares/populateUserData'));
或
2.2) 将其附加到特定路由:
const populateUserData = require('./middlewares/populateUserData');
route.get('/api/users/me',
passport.authenticate('basic', { session: false }),
populateUserData,
(req, res) => {
res.json({ id: req.user.id, username: req.user.username });
});
或
2.3) 在路由组中:
app.use('/api/users',
passport.authenticate('basic', { session: false }),
require('./middlewares/populateUserData'),
require('./routes/api/users'));
您也可以创建自己的有用的中间件,
例如:https://github.com/num8er/alttab-nodejs-challenge/blob/master/app.js#L19