Node Express中的玉URL路由

时间:2012-08-22 06:11:46

标签: node.js express pug

我正在使用Jade构建Node Express应用程序,我对如何将我的视图路由到浏览器将要生成的特定请求感到困惑。我知道为了让URL在浏览器中工作,我们需要使用Node的路由;但是,从网上看,我发现Express有自己的路由器。

我使用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'));
});

路由我的应用程序的最基本方法是什么,我在哪里可以找到有关此主题的更多文档?

感谢。

1 个答案:

答案 0 :(得分:2)

  

我了解为了让网址在浏览器中运行,   我们需要使用Node的路由;但是,从在线看,   我发现Express有自己的路由器。

Node.js本身不支持“路由”,但Express支持。您可以使用以下语法在Express中构建路径:

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

所以你的路线 app.get('/',routes.index)会使用routes.index函数处理HTTP GET请求到URL路径/。 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

找到有关此内容的更多信息
  

我正在使用Jade和我构建Node 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