我正在使用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'));
});
路由我的应用程序的最基本方法是什么,我在哪里可以找到有关此主题的更多文档?
感谢。
答案 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