用于Node.js的路由引擎

我正在进入Node.JS,并希望在路由引擎上具有灵活性。 我想要控制URL之间的映射以及哪些方法被触发。

我真的想在路由匹配中设置占位符来自动parsing参数。 就像是

{"routes": [ {'route': {'url': '/path/to/resource/[id]'}, "handler": idHandler()}, {'route': {'url': '/path/to/foo/[category]/bar'}, "handler": fooHandler(), {'route': {'url': '/path/to/resource/'}, "handler": defaultHandler()}} ]}; 

您可以select一个更具体的解决scheme(仅用于路由),如Director ,或者如果您不想处理cookie,会话,redirectfunction等,您最好的select是Express.js或Flatiron (您可以使用Director)。

我将粘贴这两个代码,这样你可以看到他们如何帮助路由:

performance

 app.get('/', function(req, res){ res.send('index page'); }); app.post('/login', function(req, res) { // login logic }); 

导向器

 // // define a routing table. // var router = new director.http.Router({ '/hello': { get: helloWorld } }); // // You can also do ad-hoc routing, similar to `journey` or `express`. // This can be done with a string or a regexp. // router.get('/bonjour', helloWorld); router.get(/hola/, helloWorld); 

资源:

http://expressjs.com/guide.html#routing
http://blog.nodejitsu.com/scaling-isomorphic-javascript-code
http://blog.nodejitsu.com/introducing-flatiron
http://howtonode.org/express-mongodb

是的,我认为快递将是您最好的select。 可以这么说,不需要“重新发明轮子”。 您也可以在路线上执行RegEx,从而为您提供很大的灵活性。 我build议阅读指南…它有很多很好的信息!

http://expressjs.com/guide.html#routing

Express.js和Connect对路由有很大的支持,虚拟主机和大量的扩展可用。 例如简单地集成玉石模板渲染或更less的样式表处理 。

使用参数,正则expression式和不同的HTTP方法定义路由。

 app.get('/home', function(req, res) { }); app.post('/save/:contactID', function(req, res) { }); app.all('/params/:required/:andOptional?', function(req, res) { }); 

请参阅kickstart和kickstart示例 ,以快速启用玉器和较less处理的示例。