うーん、読めば読むほど混乱します。だからここにソース:
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) {
最初のパラメーターは常に何として処理されますか?