用于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议阅读指南…它有很多很好的信息!
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处理的示例。