2012-08-22 48 views
2

我使用Jade構建Node Express應用程序,我對如何將瀏覽器的瀏覽器路由到瀏覽器的特定請求感到困惑。我明白爲了讓URL在瀏覽器中工作,我們需要使用Node的路由;然而,從網上看,我發現Express有它自己的路由器。Node Express中的Jade URL路由

我用PHPStorm來啓動我的項目,並且index.jade會加載...但是我怎麼加載其他的呢?這裏是我現有的代碼:

var express = require('express'), routes = require('./routes'), http = require('http'), path = require('path'); 

var app = express(); 

app.configure(function() 
{ 
    app.set('port', process.env.PORT || 3000); 
    app.set('views', __dirname + '/views'); 
    app.set('view engine', 'jade'); 
    app.use(express.favicon()); 
    app.use(express.logger('dev')); 
    app.use(express.bodyParser()); 
    app.use(express.methodOverride()); 
    app.use(express.cookieParser('your secret here')); 
    app.use(express.session()); 
    app.use(app.router); 
    app.use(require('less-middleware')({ src:__dirname + '/public' })); 
    app.use(express.static(path.join(__dirname, 'public'))); 
}); 

app.configure('development', function() 
{ 
    app.use(express.errorHandler()); 
}); 

app.get('/', routes.index); 

http.createServer(app).listen(app.get('port'), function() 
{ 
    console.log("Express server listening on port " + app.get('port')); 
}); 

是什麼路線我的應用程序的最基本方式,我在哪裏可以找到關於此主題的更廣泛的文檔?

謝謝。

回答

2

據我所知,爲了讓網址在瀏覽器中工作, 我們需要使用Node的路由;然而,從在線上看, 我發現Express有它自己的路由器。

Node.js本身不支持「路由」,但Express可以。您在快速建立自己的航線使用的語法如下:

app.[verb]('[url-path]', [handler]); 

所以你的路線app.get(「/」,routes.index)將處理HTTP GET請求的URL路徑/與routes.index功能。 Express會自動將請求和響應對象傳遞給您的處理程序。

您可以添加更多的路線是這樣的:

app.get('/users', routes.userList); 
app.get('/user/:id', routes.userInfoView); 
app.post('/user/:id', routes.userInfoSave); 

您可以找到有關此這裏http://expressjs.com/api.html#app.param

我建立使用玉節點Express應用程序的更多信息,以及我 感到困惑如何將我的觀點路由到請求瀏覽器的具體 。

一旦調用路由處理程序,說(routes.userList),您可以調用userList中的res.render()方法來呈現所需的Jade文件。例如:

res.render('user_list', 
    { users: [{name: "user1", age: 10}, {name: "user2", age: 20}] }); 

在這裏看到更多的信息:http://expressjs.com/api.html#res.render

相關問題