从路由中获取参数
app.route('/projects/:projectId/test_targets').all(function(req, res, next) {const projectId: string = req.params.projectId;next();})
route的应用
app.route('/projects/:projectId').all(function(req, res, next) {const projectId: string = req.params.projectId;let project;/* 获取project*/if (project === undefined) {res.send({ status: -1, msg: '项目id无效' });return;}res.locals.project = project;next();}).get(function(req, res) {let project = res.locals.project;/* 获取项目数据*/res.send({ status: 0, msg: '获取项目数据成功', data: project });}).put(function(req, res, next) {let project = res.locals.project;/* 更新代码*/res.send({ status: 0, msg: '修改项目成功', data: project });next();}).delete(function(req, res, next) {let project = res.locals.project;/* 删除代码*/res.send({ status: 0, msg: '删除项目成功', data: project });next();}).all(function(req, res) {/* 持久化代码*/});
res.locals可以保存一些临时数据,可在一系列的中间件之间传递.
对比app.locals,app.locals是对app中所有中间件有效,而res.locals则仅对处理当前请求的中间件有效.
