2 Star 0 Fork 0

zyn / WebCollect

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
app.js 3.72 KB
一键复制 编辑 原始数据 按行查看 历史
zhangyanan 提交于 2019-07-05 17:01 . ——
const os = require('os');
const fs = require('fs');
const path = require('path');
const morgan = require('morgan');
const express = require('express');
const logger = require('express-logger');
const bodyParser = require('body-parser');
const session = require('express-session');
const cookieParser = require('cookie-parser');
const MongoStore = require('connect-mongo')(session);
const expressEjsLayouts = require('express-ejs-layouts');
const credentials = require('./credentials.js'); // 引入秘钥
const frameguard = require('frameguard');
// const log4js = require('log4js');
const app = express();
app.use(frameguard({
action: 'allow-from',
domain: 'http://baomingtest.staff.xdf.cn'
}))
const utils = require('./src/utils');
const access = require('./middleware/access-middleware');
const logs = require('./middleware/log-middleware');
const settings = require('./mongoDB/Settings');
const config = require('./config');
const router = require('./router');
app.use(express.static(__dirname + '/public')); /// 设置静态资源路径 改文件需要写在路由挂在之前
const IP = utils.getIPAdress(os);
app.set('views', __dirname + '/views'); // 设置存放模板文件的目录
app.set('view engine', 'ejs'); // 设置模板引擎为 ejs
app.use(express.static(__dirname + '/public')); // 设置公共的静态文件存放路径
app.use(expressEjsLayouts); // 支持 express 使用 ejs 默认模板布局
app.use(bodyParser.urlencoded({ extended: false }));
//app.use(bodyParser.json()); // parse application/json
app.use(access); // 编写 express 中间件
app.use(logs);
app.use(cookieParser(credentials.cookieSecret));
/**
* @key 存放唯一会话标识的 cookie 名称。默认为 connect.sid。
* @store 会话存储的实例。默认为一个 MemoryStore 的实例
* @cookie 会话cookie的 cookie设置(path、 domain、secure)
*/
const URL = settings.mongo.url + '/' + settings.mongo.db;
app.use(session({
secret: settings.cookieSecret, // 可以随便写。 一个 String 类型的字符串,作为服务器端生成 session 的签名
name: 'session_id',
/*保存在本地cookie的一个名字 默认connect.sid 可以不设置*/
resave: false,
/*强制保存 session 即使它并没有变化,。默认为 true。建议设置成 false。*/
saveUninitialized: true, //强制将未初始化的 session 存储。 默认值是true 建议设置成true
cookie: {
maxAge: 1000 * 30 * 60 // 过期时间,过期后 cookie 中的 session id 自动删除
},
/* secure:true https这样的情况才可以访问cookie */
rolling: true, //在每次请求时强行设置 cookie,这将重置 cookie 过期时间(默认:false)
store: new MongoStore({ // 将 session 存储到 mongodb
url: settings.mongo.url + '/' + settings.mongo.db // mongodb 地址
})
}));
// flash 中间件,用来显示通知
app.use(function(req, res, next) {
const err = req.flash('error');
const success = req.flash('success');
res.locals.user = req.session.user;
res.locals.error = err.length ? err : null;
res.locals.success = success.length ? success : null;
next();
});
switch (app.get('env')) {
case 'development':
// 紧凑的、彩色的开发日志
app.use(morgan('dev'));
break;
case 'production':
// 模块 'express-logger' 支持按日志循环
app.use(logger({
path: __dirname + '/log/requests.log'
}));
break;
}
app.use(router);
app.listen(config.port,
() => {
console.log('Example app listening on ' + IP + ':' + config.port)
console.log('Express started in ' + app.get('env') +
' mode on http://localhost:' + config.port +
'; press Ctrl-C to terminate.');
})
1
https://gitee.com/ligeyihayou/WebCollect.git
git@gitee.com:ligeyihayou/WebCollect.git
ligeyihayou
WebCollect
WebCollect
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891