【问题标题】:Routing Engine for Node.jsNode.js 的路由引擎
【发布时间】:2011-12-17 05:10:39
【问题描述】:

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

我真的很想在路由匹配中设置占位符以自动解析参数。类似的东西

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

【问题讨论】:

  • 流星与 IronRouter。

标签: node.js frameworks routes


【解决方案1】:

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

我将粘贴两者的代码,以便您了解它们如何帮助路由:

快递

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      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,查看启用jade,处理较少的express示例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-11
        • 1970-01-01
        • 1970-01-01
        • 2016-12-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多