代码拉取完成,页面将自动刷新
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.');
})
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。