2013-08-01 47 views
0

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

例如:轉到URL'/ users/first_example'應自動使用「users.first_example」模塊。

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

有一些我很想念的東西,它會讓我的代碼看起來更優雅。

非常感謝。

+1

肯定不會回答你的問題,但是你的當前代碼可以用''[req.params.name]'而不是''eval'語句變得更短,更安全。 – apsillers

回答

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'); 
}); 
0

我一直在做這樣的事情,專注於REST路線。看看https://github.com/deitch/booster

如果你的路由是基於REST:

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

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

app.listen(3000); 

你只需要線了數據庫/持久連接層。您可以可以選擇自定義控制器路由,或者模型或者其中的任何部分,但都是可選的。

相關問題