2021-10-16创建服务器

var createError = require('http-errors');

var express = require('express');

// 可以记录登录信息

var session = require('express-session')

// favicon.ico

var favicon = require('serve-favicon')

// 链接数据库

var db = require('./db/connect')

var path = require('path');

var cookieParser = require('cookie-parser');

var logger = require('morgan');

// 导入路由文件

var indexRouter = require('./routes/index');

var usersRouter = require('./routes/users');

var articlesRouter = require('./routes/articles');

var app = express();

// 设置模板引擎

app.set('views', path.join(__dirname, 'views'));

app.set('view engine', 'ejs');

app.use(logger('dev'));

// 解析post请求主体,解析完成以后,会把请求主体的参数都放在req上

// req.body 是一个对象,这个对象就是解析好的post请求参数

// username:zhangsan

// password:123456

// req.body = {username:zhangsan,password:123456}

app.use(express.json());

app.use(express.urlencoded({ extended: false }));

app.use(cookieParser());

// favicon.ico

app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')))

// 配置静态资源

app.use(express.static(path.join(__dirname, 'public')));

// 配置session

// 在req上就会多一个session属性,是一个对象

// 可以在对象里面写入信息

// 请求会自动携带

app.use(session({

  secret: 'sz2111a',

  resave: false,

  saveUninitialized: true,

  cookie: {

    maxAge:60*60*1000

  }

}))

app.use('/users', usersRouter); // 用户业务子路由

// 鉴权

app.all('*',function(req,res,next){

  if(req.url!='/login'&&req.url!='/regist'){

      if(req.session.isLogin){

        next()

      }else{

        res.redirect('/login')

      }

  }else{

      next()

  }

})

// 使用子路由

app.use('/', indexRouter);  // 模板子路由

app.use('/articles', articlesRouter); // 文章业务子路由

// catch 404 and forward to error handler

app.use(function(req, res, next) {

  next(createError(404));

});

// 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 : {};

  // render the error page

  res.status(err.status || 500);

  res.render('error');

});

module.exports = app;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容