分享一个基于Koa2的轻量级RESTful API Server脚手架,支持ES6
发布于 8 年前 作者 wy373226722 6581 次浏览 来自 分享

源码地址:https://github.com/yi-ge/koa2-API-scaffold

Koa2 RESTful API 服务器脚手架

这是一个基于Koa2的轻量级RESTful API Server脚手架,支持ES6。

约定使用JSON格式传输数据,POST、PUT、DELET方法支持的Content-Type为application/x-www-form-urlencoded、multipart/form-data、application/json可配置支持跨域。非上传文件推荐application/x-www-form-urlencoded。通常情况下返回application/json格式的JSON数据。

可选用mongodb、redis非关系型数据库和PostgreSQL, MySQL, MariaDB, SQLite, MSSQL关系型数据库,考虑RESTful API Server的实际开发需要,这里通过sequelize.js作为ORM,同时提通过Promise执行SQL直接操作Mysql数据库的方法(不管什么方法,注意安全哦)。

此脚手架只安装了一些和Koa2不冲突的搭建RESTful API Server的必要插件,附带每一个插件的说明。采用ESlint进行语法检查。

因此脚手架主要提供RESTful API,故暂时不考虑前端静态资源处理,只提供静态资源访问的基本方法便于访问用户上传到服务器的图片等资源。基本目录结构与vue-cli保持一致,可配合React、AngularJS、Vue.js等前端框架使用。在Cordova/PhoneGap中使用时需要开启跨域功能。

免责声明: 此脚手架仅为方便开发提供基础环境,任何人或组织均可随意克隆使用,使用引入的框架需遵循原作者规定的相关协议(框架列表及来源地址在下方)。采用此脚手架产生的任何后果请自行承担,本人不对此脚手架负任何法律责任,使用即代表同意此条。

目前暂未加入软件测试模块,下一个版本会加入该功能并提供集成方案。

China大陆用户请自行优化网络。

开发使用说明

$ git clone https://github.com/yi-ge/koa2-API-scaffold.git

$ cd mv koa2-API-scaffold $ npm install $ npm run dev # 可执行npm start跳过ESlint检查。 访问: http://127.0.0.1:3000/

调试说明

$ npm run dev --debug

Or

$ npm start --debug 支持Node.js原生调试功能:https://nodejs.org/api/debugger.html

开发环境部署

生成node直接可以执行的代码到dist目录:

$ npm run build $ npm run production # 生产模式运行

Or

$ node dist/app.js PM2部署说明

提供了PM2部署RESTful API Server的示例配置,位于“pm2.js”文件中。

$ pm2 start pm2.js PM2配合Docker部署说明: http://pm2.keymetrics.io/docs/usage/docker-pm2-nodejs/

Docker部署说明

$ docker pull node $ docker run -itd --name RESTfulAPI -v pwd:/usr/src/app -w /usr/src/app node node ./dist/app.js 通过’docker ps’查看是否运行成功及运行状态

Linux/Mac 直接后台运行生产环境代码

有时候为了简单,我们也这样做:

$ nohup node ./dist/app.js > logs/out.log & 查看运行状态(如果有’node app.js’出现则说明正在后台运行):

$ ps aux|grep app.js 查看运行日志

$ cat logs/out.log 监控运行状态

$ tail -f logs/out.log

更多使用介绍请访问:https://github.com/yi-ge/koa2-API-scaffold

4 回复

mark

来自酷炫的 CNodeMD

还是不错的,个人觉得应该直接在框架级别控制所有的路由,而不用再由用户控制路由了。

@rwing 这个本身只是个API的Server,考虑轻量级。如果框架级控制所有路由,可能不太方便。个人看法,当然你可以随便封装嘛。

回到顶部