2

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

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

谢谢。

4

1 回答 1

2

我知道为了让 URL 在浏览器中工作,我们需要使用 Node 的路由;但是,从网上看,我发现 Express 有自己的路由器。

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

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

因此,您的路由app.get('/', routes.index)将使用 routes.index 函数处理对 URL 路径 / 的 HTTP GET 请求。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

于 2012-08-22T13:33:03.737 回答