使用独立于app.server()的node.js express模块​​的匹配引擎

在快速3.0,我试图使用快递仅用于路由目的,而不是使用它与app.server()耦合。 这个想法是使用路由引擎,但作为另一个框架的一部分,我想分配URL空间到不同的子模块。 理想情况下,我应该支持现有的路由引擎,所以人们可以轻松地改变他们现有的代码库。

由于expression式似乎与req和res的假设有很大的联系,所以我试图找出两个expression依赖的子集,所以我没有任何错误。 然后重新定义res.render()等来适应我的口味。

对于这个代码:var app = require('express')(); //注册路由… app.get('/ test',function(req,res){console.log(“In test1。”);});

// From: http://nodejs.org/api/http.html#http_class_http_serverrequest var req1={ headers: {}, method: 'GET', url: "/test" }; var req2={ headers: {}, method: 'GET', url: "/no_match" }; var res={ setHeader: function(a, b) {console.log(a, b);} }; console.log("About to test routing now."); app(req1, res); // ok, should call associated method. app(req2, res); // Errors! 

第一个应用程序()返回罚款。 但是第二个给出了一系列的错误。 快递应该依赖于需求,这是必需的。 但是我不能理解为什么它应该依赖于响应对象,因为响应只能通过应用的方法来使用。 我应该创build什么样的res对象子集,所以我可以放心,它可以用于任何用户可能用于他们的应用程序的随机代码?