1 var express = require('express'); //引入express模塊 2 var path = require('path'); //引入path模塊,該模塊包括了一些處理文件路徑的功能 3 var favicon = require('serve-favicon'); //圖標緩存服務中間件 4 var logger = require('morgan'); //HTTP請求日志中間件 5 var cookieParser = require('cookie-parser'); //cookie操作中間件 6 var bodyParser = require('body-parser'); 7 //body-parser插件用於post參數的解析,最常用的是其中的json和urlencoded的parser,可分別對以JSON格式的post參數和urlencoded的post參數進行解析,均可獲得一個JSON化的req.body 8 9 var routes = require('./routes/index'); 10 var users = require('./routes/users');//自定義路由模塊的引用 11 12 var app = express(); //創建一個 Express 應用。express()是一個由express模塊導出的入口(top-level)函數。 13 14 // view engine setup 15 app.set('views', path.join(__dirname, 'views')); //設置views的目錄,__dirname全局變量表示當前執行腳本所在的目錄 16 app.set('view engine', 'ejs'); //設置渲染引擎 17 18 // uncomment after placing your favicon in /public 19 //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); //設置圖標 20 app.use(logger('dev')); //日志設置,使用參見https://github.com/expressjs/morgan 21 app.use(bodyParser.json()); //解析JSON格式的post參數 22 app.use(bodyParser.urlencoded({ extended: false })); //解析urlencoeded編碼的post參數,URLEncoded編碼中,所有的字符均為ANSCII碼 23 app.use(cookieParser()); //cookie設置 24 app.use(express.static(path.join(__dirname, 'public'))); //靜態目錄設置 25 26 //路由 27 app.use('/', routes); 28 app.use('/users', users); 29 30 //捕捉404錯誤並進行錯誤處理 31 app.use(function(req, res, next) { 32 var err = new Error('Not Found'); 33 err.status = 404; 34 next(err); 35 }); 36 37 // error handlers 38 39 //開發環境錯誤處理 40 // will print stacktrace 41 if (app.get('env') === 'development') { 42 app.use(function(err, req, res, next) { 43 res.status(err.status || 500); 44 res.render('error', { 45 message: err.message, 46 error: err 47 }); 48 }); 49 } 50 51 //生產環境錯誤處理 52 // no stacktraces leaked to user 53 app.use(function(err, req, res, next) { 54 res.status(err.status || 500); 55 res.render('error', { 56 message: err.message, 57 error: {} 58 }); 59 }); 60 61 62 module.exports = app;
轉自風車車jerry的博文,原鏈接為http://www.cnblogs.com/fhen/p/5257467.html。僅為方便查看。