var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var index = require('./routes/index');/*routes是一个本地模式下的模块,功能是为指定路径组织返回内容,相当于MVC的控制器,用于处理用户请求和数据流,复杂模型,将输出传递给视图。通过express.createServer()创造一个实例,后面所有的操作都是根据这个实例进行。*/
var users = require('./routes/users');
var app = express();
// view engine setup
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public','favicon.ico')));/*http://www.tuicool.com/articles/jueARjE上面说是设置/public/favicon.ico为favicon图标。我这个目录下没有找到这个图标,所以注释掉了*/
app.use(logger('dev')); //加载日志中间件
app.use(bodyParser.json());//加载解析json的中间件
app.use(bodyParser.urlencoded({ extended: false }));//加载解析urlencoded请求体的中间件。
app.use(cookieParser());//加载解析cookie的中间件。
app.use(express.static(path.join(__dirname, 'public')));//设置public文件夹为存放静态文件的目录。
app.use('/', index);//路由控制器。
app.use('/users', users);//路由控制器。
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
/*《node.js编程指南》上说app.get()是一个路由控制器,但 http://www.tuicool.com/articles/jueARjE上说app.use()才是一个路由控制器,等我找到准确答案再下定论。欢迎指正。*/
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var index = require('./routes/index');/*routes是一个本地模式下的模块,功能是为指定路径组织返回内容,相当于MVC的控制器,用于处理用户请求和数据流,复杂模型,将输出传递给视图。通过express.createServer()创造一个实例,后面所有的操作都是根据这个实例进行。*/
var users = require('./routes/users');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));/*app.set()设置express的参数,接受一个键(key)值(value),views是视图文件的目录,存放模版文件.
app.set('view engine', 'jade');//view engine是视图模版引擎
*/
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public','favicon.ico')));/*http://www.tuicool.com/articles/jueARjE上面说是设置/public/favicon.ico为favicon图标。我这个目录下没有找到这个图标,所以注释掉了*/
app.use(logger('dev')); //加载日志中间件
app.use(bodyParser.json());//加载解析json的中间件
app.use(bodyParser.urlencoded({ extended: false }));//加载解析urlencoded请求体的中间件。
app.use(cookieParser());//加载解析cookie的中间件。
app.use(express.static(path.join(__dirname, 'public')));//设置public文件夹为存放静态文件的目录。
app.use('/', index);//路由控制器。
app.use('/users', users);//路由控制器。
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
/*《node.js编程指南》上说app.get()是一个路由控制器,但 http://www.tuicool.com/articles/jueARjE上说app.use()才是一个路由控制器,等我找到准确答案再下定论。欢迎指正。*/
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;