在Node.js / Express中连接中间件

以下是一个Node.js / Express Web服务器的简单示例:

var express = require('express'); var app = express(); app.get('/*', function(req, res){ res.end('Hello, you requested ' + req.url + '.'); }); app.listen(3000); 

运行时,请求http://localhost:3000/Hello-world将生成响应

 Hello, you requested /Hello-world. 

为了学习中间件,我想重新实现这个服务器,但是使用中间件来获取包含在单独函数中的“获取数据”,“处理数据”和“输出数据”。 我试图跟随,但是对于这个代码,一个请求http://localhost:3000/Hello-world没有给出任何回应。 只有app.get(..)代码似乎执行。

 var express = require('express'); var app = express(); // Step 1: get input app.get('/*', function(req, res){ req['testing'] = req.url; }); // Step 2: manipulate data app.use('/*', function(req, res, next) { req['testing'] = 'Hello, you requested ' + req['testing']; return next(); }); // Step 3: send output app.use('/*', function(req, res, next) { res.end(req['testing']); return next(); }); app.listen(3000); 

似乎有什么缺失,连接在一起的function?

 //This needs to be MIDDLEWARE not a route handler // Step 1: get input app.use(function(req, res, next){ req.testing = req.url; next(); }); // Step 2: manipulate data app.use(function(req, res, next) { req.testing = 'Hello, you requested ' + req.testing; next(); }); // Step 3: send output app.get('/*', function(req, res) { res.end(req.testing); });