洽客官网Node项目说明


基于Node + Express的前后端分离项目说明

目录设计

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.
├── app.js - 服务启动主文件
├── config.dev.js - 开发环境配置
├── config.js - 环境配置
├── config.pro.js - 生成环境配置
├── db - MongoDB数据库文件
├── log4js.config.js - 日志配置
├── logs - 日志记录
├── package.json
├── server - 服务端相关
│ ├── api - 数据接口层
│ ├── common - 公用工具
│ ├── controllers - 控制器
│ ├── middlerware - 数据请求中间件
│ ├── mock - 接口数据模拟层
│ ├── models - MongoDB数据模型层
│ ├── service - 数据服务层
│ ├── views - 视图层
│ │ ├── includes
│ │ ├── layout
│ │ └── pages
│ ├── api.router.js - 数据接口路由
│ └── web.router.js - 页面请求路由
├── static - 静态资源相关
│ ├── home
│ ├── home_admin
│ ├── home_mobile
│ ├── libs
│ └── qk.config.js
└── test - 测试相关

Views目录说明

pages 目录下按项目目录划分,一个项目一个目录,每个项目可以使用不同的技术框架,由express调用相关的渲染引擎渲染。

static 静态资源目录

按项目资源存放,模块化的项目按页面模块与页面模板目录存放

数据流转

service 层调用 node-zookeeper-dubbo-qk 模块去连接 zookeeper 获取服务器地址,然后通过 socket 连接服务器获取dubbo服务,通过dubbo 服务调用api获取数据,返回给api层,api层对数据进预处理,然后返回给客户端。

后台渲染引擎

官网是多页面应用,为了尽可能的提取公用的片段,制作母版页而采用了jade模板,后台管理页面是一个spa应用,采用了artTemplate模板渲染,以便更快的编写模板,免去jade模板的学习成本。

项目中可以使用两种模板:

  • .jade 为后缀文件会自动调用 jade 去渲染
  • .html为后缀的文件会自动调用 artTemplate 去渲染

新增一个服务

  1. service 层注册一个服务,指定接口与调用参数,与java的 dubbo服务一一对应
  2. api 层添加数据接口
  3. 如果views层有需要该服务提供相关数据时,去 controller 层引入 service层获取数据去渲染页面。
  4. api.router.js 注册接口路由,对外提供接口服务
  5. 编写页面相关逻辑,去 web.router.js 注册页面路由

命名规则

api 层 : a + 业务名称
controller 层: c
+ 业务名称
service 层: s_ + 业务名称

配置环境拆分

不同的环境 端口,数据库,各种服务都有不同的配置,也有相同的配置,分为不同的文件来管理

config.js 不同环境下的公共配置
config.dev.js 开发环境下的配置
config.pro.js 生产环境下的配置

分享到