node package manager
Don’t reinvent the wheel. Reuse code within your team. Create a free org »

ee-express

eeExpress

通过对Node插件的引用、封装,创建一个简单的、企业级的Express项目框架

框架特性:

  • 使用配置文件对整个应用进行配置
  • 内置日志记录方案
  • Session持久化支持内存/redis(单点或集群)
  • 服务支持自定义透传格式,可定义透传服务路由规则
  • 通过制定路由生命周期,对路由及服务的各个阶段的数据进行自定义
  • 采用mockJS插件提供对对服务数据的Mock
  • 内建国际化多语言实现,只需要定义语言包即可
  • 视图使用EJS模版引擎构建

eeExpress API

  • runtime 运行时Core
    • App 应用类库

      • Utils 常用工具包
    • Authorization 提供默认的授权机制

    • RedisStore

      • getInstance 获取当前设置的RedisClient实例,当前支持两种模式:cluster和local。可以在配置文件的redis配置节中灵活调整
      // Redis相关配置:
      'redis': {
        'mode': 'local', // Redis支持两种模式,local/cluster
        'local': { 'port': 6379, 'host': '127.0.0.1' },
        'cluster':[
          { 'port': 7000, 'host': '10.200.10.22' },
          { 'port': 7001, 'host': '10.200.10.22' },
          { 'port': 7000, 'host': '10.200.10.23' },
          { 'port': 7001, 'host': '10.200.10.23' }
        ]
      }
      
      
    • ServiceHandler 注册服务,eeExpress会自动对应配置节runtime.directory.service下的文件夹,将此文件夹下的所有文件注册为服务(具有特定规则的路由)

      • register(service) 服务注册方法
      • router Express原生的router
    • Router

      • use 暂不开放
    • SessionStore

      • use(app, appConfig) 内部使用
      • SKEY 当前内部使用的Session存储的Key
      • setUserId(req,userId):设置用户ID
      • getUserId(req):获取用户ID
      • setAccessInfo(requserId):设置权限信息
      • getAccessInfo(req):获取权限信息
      • setUserName(req,userName):设置用户名称
      • getUserName(req):获取用户名称
      • setUserInfo(req,userInfo):设置用户信息
      • getUserInfo(req):获取用户信息
      • getUserResource(req):获取用户资源信息
      • setUserResource(req,userResources):设置用户资源
      • checkUserResource(req,resource):检查用户资源
      • setXAuthToken(req,token):设置oAuth2用户授权Token
      • getXAuthToken(req):获取oAuth2用户授权Token
      • clearSession(req):清除Session
      • setUserCode(req,code):设置用户CODE
      • getUserCode(req):获取用户CODE
      • getSessionId(req):获取当前会话ID
      • setSessionId(req,sid):设置当前会话ID
      • getSessionAsync(req):异步获取Session信息,如果存储使用Redis,可使用此方法获取当前会话Session信息
      • getSessionAccessInfoAsync(req):异步获取SessionAccessInfo,同上
      • setSysInfoAsync(req,sysInfo):异步设置系统信息
      • getSysInfoAsync(req):异步获取系统信息
    • ViewParser 此模块主要用来视图页面展示相关,目前自动启用gzip压缩,视图模版引擎默认使用ejs,并自动解析view文件夹下边的.html文件,并自动查找静态资源包下是否存在favicon.ico,如果存在则自动装载为应用的图标

    • Internationalization

    • Mock

  • modules
  • models orm mapping data model,自动加载runtime.orm.modelsRoot下的所有文件,映射为对应mongo数据库的数据表。
  • appConfig
  • logger