嗯 - 我读得越多,我就越困惑。所以这里的来源:对Expressjs/Nodejs请求感到困惑 - 响应处理
var express = require('express')
, http = require('http')
, server = express()
;
var home = require('./routes/home.js')
, about = require('./routes/about.js')
, contact = require('./routes/contact.js');
server.configure(function() {
server.set('port', process.env.PORT || 3000);
server.set('view engine', 'hjs');
server.set('views', __dirname + '/views');
server.use(express.logger());
server.use(server.router);
server.use(express.favicon());
server.use(require('stylus').middleware(__dirname + '/public'));
server.use(express.static(__dirname + '/public'));
server.use(express.bodyParser());
server.use(express.cookieParser('your secret here'));
server.use(express.methodOverride());
server.use(express.session());
});
server.get('*', function (req, res) {
switch (req.path) {
case '/':
res.render('home', { title:'Home Page' });
break;
case '/about/':
res.render('home', { title:'About Page' });
break;
case '/contact/':
res.render('contact', { title:'Contact Page' });
break;
default:
res.render('home', { title:'404 - Page not found'});
}
});
嗯它的工作,但我仍然没有得到这个要求/分辨率组合到我的头骨。 我很确定我不需要'*'
那里作为参数。不过我不知道如何建立更好的解决方案 。任何简单的愚蠢愚蠢的例子,所以我可以想象如何 完全的魔术般的作品。
为了简化我的谜语我想知道(和理解)为什么这个工程:
server.get('*', function (req, res) {
但这并不
server.get(function (req, res) {
的第一个参数总是被作为处理什么exectly?
这看起来并不像我一样快。你甚至没有在任何地方定义'req'和'res',所以我很惊讶它甚至可以工作。看看例子:https://github.com/visionmedia/express/tree/master/examples –
我不想发布整个事情。 – Inoperable
对不起 - 你是对的我发布了错误的东西!刚刚reedited – Inoperable