2011-12-17 69 views
4

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

我真的想在路径匹配中设置占位符来自动解析参数。像是

{"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()}} 
    ]}; 
+1

http://expressjs.com/ – generalhenry 2011-12-17 05:30:54

回答

2

是的,Express,将是你最好的选择,我认为。可以这么说,不需要“重新发明轮子”。您也可以在路线上执行RegEx,这为您提供了很大的灵活性。我建议阅读指南...它有很多很好的信息!

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

4

您可以选择(只用于路由)更具体的解决方案像Director,或者如果你不想处理cookie,会话重定向功能等您最好的选择是Express.jsFlatiron(你可以与Director一起使用)。

我会粘贴两个代码,所以你可以看到他们如何能在路由帮助:

快速

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/en/guide/routing.html
http://blog.nodejitsu.com/scaling-isomorphic-javascript-code
http://blog.nodejitsu.com/introducing-flatiron
http://howtonode.org/express-mongodb

0

Express.jsConnect有路由,虚拟主机和大量扩展的大力支持是可用那里。例如jade template renderingless stylesheet processing的简单集成。

定义具有参数,正则表达式和不同HTTP方法的路由。

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

与启用玉和较少的处理快车的一个例子见kickstartkickstart-example