是否可以在Express中自动路由?

时间:2013-08-01 18:54:16

标签: javascript node.js express

是否可以在Express中自动路由,因此我不必列出所有路由?

例如:转到网址'/ users / first_example'应自动使用“users.first_example”模块。

app.get('/users/:name', function(req,res){
return eval('users.'+req.params.name); //failed attempt
});

必须有一些我缺少的东西,它会使我的代码看起来更优雅。

非常感谢。

3 个答案:

答案 0 :(得分:1)

var users = require('./users');//a module of route handler functions
app.get('/users/:name', function(req,res){
  var handler = users[req.params.name];
  if (typeof handler === 'function') {
    return handler(req, res);
  }
  res.status(404).render('not_found');
});

答案 1 :(得分:0)

您可能希望在stackoverflow上查看此早期答案 - https://stackoverflow.com/a/6064205/821720

更多代码,但将路由抽象到下一级别,并为您提供更清晰的主文件。

答案 2 :(得分:0)

我一直致力于这样的事情,专注于REST路线。看看https://github.com/deitch/booster

如果您的路线是RESTful:

var booster = require('booster'), express = require('express'), app = express(), db = require('./myDbSetup');

booster.init({app:app,db:db});
booster.resource('user');

app.listen(3000);

您只需连接数据库/持久性连接层。您可以选择自定义控制器路由,模型或其任何部分,但都是可选的。