'use strict'; const path = require('path'); const fs = require('fs'); module.exports = appInfo => { const config = {}; // 数据库配置 config.mysql = { client: { // host host: 'rm-wz9ae9t6qopwrday6.mysql.rds.aliyuncs.com', // 端口号 port: '3306', // 用户名 user: 'zh_calc', // 密码 password: 'Zh@)!(3850Calc', // 数据库名 database: 'calculation', }, // 是否加载到 app 上,默认开启 app: true, // 是否加载到 agent 上,默认关闭 agent: false, }; // 表名前缀 config.tablePrefix = 'zh_'; // redis设置 config.redis = { client: { host: '127.0.0.1', port: '6379', password: 'zh@)!(3850sc', db: '0', }, agent: true, version: '1.0.0', }; // should change to your own config.keys = appInfo.name + '_1503910434503_882'; // view相关 config.view = { mapping: { '.ejs': 'ejs', }, root: [ path.join(appInfo.baseDir, 'app/view'), ].join(','), cache: false, }; config.static = { maxAge: 0, buffer: false, }; // 分页相关 config.pageSize = 15; // 中间件 config.middleware = ['gzip', 'urlParse', 'sortFilter', 'autoLogger']; // session配置 config.session = { key: 'ZHC_SESS', maxAge: 3600 * 1000 * 24, // 1小时 httpOnly: true, encrypt: true, rolling: true, // 每次都更新session有效期 }; // session使用redis exports.sessionRedis = { name: 'session', }; // 缓存时间 config.cacheTime = 3600 * 24 * 31; // 31天 计量一期的时间,估计为1月 // 安全性配置 config.security = { csrf: { ignoreJSON: false, // 默认为 false,当设置为 true 时,将会放过所有 content-type 为 `application/json` 的请求 }, }; // 发送短信相关 config.sms = { // account: '710030', // password: 'w7pRhJ', // extno: '10690587', authKey: 'fb5ef483e44b9556512a9febef376051', }; // geetest验证码key config.geetest = { id: '23c50f6711966f744c93a70167c8e0a4', key: '9b67989994f9def437ea68bb495f0162', }; // 前端验证 config.jsValidator = { client: {}, app: true, }; config.filePath = '/etc/calc/files'; // 上传设置 config.multipart = { whitelist: ['.json', '.txt', '.xls', '.xlsx', '.doc', '.docx', '.pdf', '.ppt', '.pptx', '.png', '.jpg', '.jpeg', '.gif', '.bmp', '.cad', '.dwg', '.zip', '.rar', '.7z', ''], fileSize: '30mb', fields: '15', }; // 是否压缩替换前端js config.min = true; const file = appInfo.baseDir + '/config/version'; config.version = fs.existsSync(file) ? fs.readFileSync(file, 'utf8') : '1.0.5'; // 压缩设置 config.gzip = { threshold: 2048, // 下载的url要用正则忽略 ignore: /(\w*)(\/download\/file)|(\/profile\/qrCode)(\w*)/ig, }; config.customLogger = { // 操作失败日志 fail: { file: path.join(appInfo.root, 'logs', appInfo.name, config.version, 'fail.log'), }, // 以下为业务日志 ledger: { file: path.join(appInfo.root, 'logs', appInfo.name, config.version, 'ledger.log'), }, stage: { file: path.join(appInfo.root, 'logs', appInfo.name, config.version, 'stage.log'), }, mixed: { file: path.join(appInfo.root, 'logs', appInfo.name, config.version, 'mixed.log'), } }; config.bodyParser = { jsonLimit: '10mb', formLimit: '10mb', }; config.etag = { weak: false, }; config.wechatAll = { appid: 'wx1c1cd8bae5836439', appsecret: 'a35104f156faf19ab7a3ae4f990a1dd4', token: 'smartcost3850888', encodingAESKey: 'yjTsgluXZnsx5At4XjtOgeIZzmPuuFqoa3tLe25WxtC', payment: { partnerKey: '', mchId: '', notifyUrl: '', pfx: '', }, modules: { message: true, // enable or disable co-wechat api: true, // enable or disable co-wechat-api oauth: true, // enable or disable co-wechat-oauth payment: false, // enable or disable co-wechat-payment }, }; return config; };