config.js 3.61 KB
"use strict";

var configure = function () {
  const path = require('path'),
    PROJECT_NAME = 'publisher';

  var host, port, database, username, password, BASE_URL;
  var redisHost, redisPort, redisDB, redisPass;

  switch (process.env.NODE_ENV) {
    case 'product': //生产服务模式
      BASE_URL = `http://onwall.cn/${PROJECT_NAME}/`;
      host = '58.246.253.126';
      port = '5433';
      database = 'startup';
      username = 'pms';
      password = 'pms';
      break;
    case 'real': //远程连接生产模式
      BASE_URL = `http://onwall.cn/${PROJECT_NAME}/`;
      host = '58.246.253.126';
      port = '5433';
      database = 'startup';
      username = 'pms';
      password = 'pms';
      break;
    default: //开发模式
      BASE_URL = `http://onwall.cn/${PROJECT_NAME}/`;
      host = '58.246.253.126';
      port = '5433';
      database = 'startup';
      username = 'pms';
      password = 'pms';
      redisHost = '192.168.1.90';
      redisPort = 6379;
      redisDB = 1;
      redisPass = 'itomix';
      break;
  }

  const root = process.cwd(),
    server_path = 'server', //后端主目录
    init_path = 'init', //后端初始化目录
    lib_path = 'lib', //后端自定义库
    modules_path = 'modules', //后端模块定义
    routers_path = 'routers', //后端路由定义
    entities_path = 'entities', //实体类定义
    public_path = 'public', //静态资源目录
    logs_path = 'logs', //日志目录
    views_path = 'views', //前端视图输出
    mock_path = 'mock' //mock数据目录
    ;

  return {
    //sequelize数据库连接定义
    sequelize: {
      database: database,
      username: username,
      password: password,
      options: {
        timezone: '+08:00', //保证时区正确
        host: host,
        port: port,
        dialect: 'postgres',
        //storage: 'path/to/database.sqlite', //SQLite only
        pool: {
          max: 5,
          min: 0,
          idle: 10000
        }
      }
    },
    redis: {
      host: redisHost,
      port: redisPort,
      db: redisDB,
      pass: redisPass
    },
    //系统目录定义
    system: {
      bind_port: 3030, //绑定端口
      base_url: BASE_URL, //主URL
      project_name: PROJECT_NAME, //项目名
      additional: '_action', //路由后缀
      mock_file: '.js', //对应url请求时获取mock数据类型的文件后缀
      mock_mode: process.env.MOCK_MODE||false, //mock模式, auto=自动|true|false
      real_mode: /^product|real$/.test(process.env.NODE_ENV) //连接真实生产环境
    },

    //系统路径
    path: {
      ROUTERS_PATH: path.resolve(root, server_path, routers_path), //后端路由定义
      ENTITIES_PATH: path.resolve(root, server_path, entities_path), //实体类定义
      INIT_PATH: path.resolve(root, server_path, init_path), //后端初始化目录,固定
      LIB_PATH: path.resolve(root, server_path, lib_path), //后端自定义库,固定
      MODULES_PATH: path.resolve(root, server_path, modules_path), //后端模块定义
      MOCK_PATH: path.resolve(root, mock_path), ///mock数据目录
      PUBLIC_PATH: path.resolve(root, public_path), //静态资源目录
      VIEWS_PATH: path.resolve(root, views_path), //前端视图输出
      LOGS_PATH: path.resolve(root, logs_path) //日志目录
    },

    //文件上传目录定义
    upload: {
      root: '/opt/domino-img/',
      base_url: null,
      appimg: 'appimg/',
      qrimg: 'qrimg/',
      wximg: 'wximg/'
    },

    //微信定义
    wechat: {
      cert: '/opt/domino-cert/apiclient_cert.p12'
    }
  };
}();

//绑定到全局变量
global.config = global.config = configure;
module.exports = configure;