app.js
var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');
var app = express();
// all environments
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(app.router);
app.use(require('stylus').middleware(__dirname + '/public'));
app.use(express.static(path.join(__dirname, 'public')));
//一般処理
app.use(function(request, response, next){
console.log('ここだよ=[' + request.url + ']');
response.send(404, "何もない");
});
//errorオブジェクトある処理
app.use(function(error, request, response, next) {
//クライアントに送るHTTPコードです。基本はerrorオブジェクトにセットするべきですが、
//セットされてない場合は、404をセットする
response.status(error.status || 404);
response.send("error.message=" + error.message);
});
app.get('/', routes.index);
//パラメーター処理例1
app.get('/user/:username', function(request, response, next){
var username = request.params.username;
if (username === 'koma') {
next(); //404
} else if (username === 'endia') {
var err = new Error('該当するユーザーは存在していません。');
//err.status = 500; //セットしたら、500を返す;セットしなければ、404を返す
next(err);
} else {
response.send("ここは<strong>" + username + "</strong>さんのページです。");
}
});
//パラメーター処理例2:チェック処理
app.param('postname', function(request, response, next, postname){
if (postname === 'koma') {
next(new Error(postname + "ポストは存在しません。")); //404
} else {
request.postname = postname;
next();
}
});
//パラメーターチェックOKだったら、ここへ
app.get('/post/:postname', function(request, response){
response.send("this is <h1>" + request.postname + ".</h1>");
});
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
0 件のコメント:
コメントを投稿