2012-08-22 117 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

相关问题