在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); });