为了配合 RootFreeFirewall 而存在的衍生仓库,是它的后端应用
该配合 RFF 演出的 RFF-Backend 别被视而不见
由于我是一个简单粗暴不讲道理的JavaScript
死党,果断采用了Node.js
做后端,这边使用的是基于Koa.js
改造的一个MVCM
框架,这个框架用于我自己博客的开发中,效果还不错,设计**有一点参考Django
,这边直接将框架移植过来了,日后有空可能会将这个框架继续改造,做成一个通用npm
包,用于构建简易Web
应用。
这边服务器架构主要分为四块:
Model
:模型层,只要将配置文件中的服务器连接信息配置好,可以直接使用我提供的助手,根据用户写的ORM
(这里使用了Sequelize ORM
库)文件自动生成、导入数据库模型,简单粗暴View
:视图层,这里的视图层实际上是抽象的一层,对于服务器来说,视图层就是url
与Controller
之间的对应关系Controller
:控制器层,当匹配到View
层的url
时,实际的处理逻辑控制权会转移到用户写的控制器中去,通俗来说,这一层就是服务器的接口逻辑Middleware
:中间件层,这一层估计玩Node.js
的人都不会陌生,就是原封不动引用Koa.js
的概念
如果你需要自己写新的逻辑,看一看我写的代码就能懂,不难。
暴露的接口采用了RESTful API
形式,详细的接口文档可以查看我写的WiKi
,传送门在这里:RFF-Backend-WiKi
如果还没安装Node.js
和npm
,请自行安装,安装完之后,请安装yarn
:
npm i -g yarn
然后在项目根目录下使用yarn
安装依赖:
yarn
安装完成后你需要更改数据库的各种连接信息为你自己的数据库信息,建议使用MySQL
,其他的数据库应该也能行,但是我没有测试过,你可以以身试法,在这里:
/src/configs/model.js
相信你能看懂每一项是什么意思,接着你还需要改动一些服务器的整体设置:
/src/configs/server.js
比如监听端口等,你可以直接监听80
端口对外暴露http
服务,但是不推荐这么做,你可以监听本地的一个不常用端口,然后再服务器上使用Nginx
做反向代理,这样可以与你原来的服务共存。
另外的一些配置都是一些小case
,你可以在配置目录下自行做修改
在修改完所有配置之后,你可以先编译一次,让我们写的helper
模块可用:
yarn build
接着你可以使用我们写的helper
模块进行一次数据库连接测试:
yarn helper db test
如果一切正常的话,你可以看到终端输出的正常提示:
yarn run v1.12.3
$ node build/helper.js db test
[log] 开始测试数据库连接
[log] 连接成功
Done in 2.99s.
接着就可以开始同步数据库了,这里你只需要在你自己的数据库管理软件中建好数据库并且设置好连接信息,并不用为其建立任何表,这就是ORM
的神奇之处,我们可以根据你写的Model
层描述文件自动同步数据库:
yarn helper db force sync
一切正常话,数据库同步就完成了,你可以开启服务了:
yarn start
可以自己尝试发起一个GET
请求,你会发现我们部署的服务就已经在你设定的监听端口上可用了,接着只需要使用Nginx
做反向代理将端口转发即可将端口暴露给外部。
- 作案团伙:
蛋黄酱
、鲳鱼酱
、徐酱
- 学校:
NUAA
- 课程:
2018 信息安全综合实验
觉得不错的话点一个小星星🌟哦!