koa 简介

一、介绍

本文只对使用 koa 搭建服务器实现接口的思路做一下描述,具体使用的一些 api 可以去查阅相关文档。

二、概念

1、ORM(Object Relational Mapping 对象关系映射)

我这里简单介绍一下。首先面向对象编程把所有实体看成对象(object),关系型数据库则是采用实体之间的关系(relation)连接数据,然后 ORM 就是把数据库映射成对象,这样的好处是我们操作数据库不再需要在去写 SQL语句,只需要操作实体对象的属性和方法就可以达到操作数据库的效果。映射关系如下:

1
2
3
4
5
数据库的表(table) => 类(class)

记录(record,行数据)=> 对象(object)

字段(field)=> 对象的属性(attribute)

我这里 ORM 用的是Sequelize框架。对于 ORM 更详细的描述,可以看看这里了解一下或者Google一下。

2、RESTful API 设计指南

它是一种互联网应用程序的API设计理念,详情请看 http://www.ruanyifeng.com/blog/2014/05/restful_api.html。

三、项目搭建

先看一下项目的结构。

1
2
3
4
5
6
7
8
|———— server // Koa 后端,用于提供Api
| |———— config // 配置文件夹,用来连接数据库
| |———— schema // 数据库表结构
| |———— modules // 模型
| |———— controllers // 控制器
| |———— routes // 路由
| |———— app.js // 入口文件
|

1、环境配置

开始之前先对环境进行配置。

后端要存数据,当然就需要数据库,我这里用的是mysql,所以先安装mysql,数据库管理软件我用的是MySQL Workbench。

koa项目是基于node的,所以需要安装node。项目的开发工具没啥说的。

配置好项目需要的环境就开始做项目了。先创建一个文件夹,然后 npm init ,之后一路回车就行了。这是要建一个package.json文件,方便后面对包的管理。

然后在server文件夹下再创建config、schema、modules、controllers、routes文件夹及app.js文件,下面就分好的这几部分进行介绍。

2、config

config 文件夹下创建 db.js 文件,利用 Sequelize 来连接数据库。

3、schema(数据表模型)

这里的主要功能就是利用 Sequelize 建立与数据表的对应关系,用于建表。

4、modules(对象模型)

这里的功能是建立数据库表对应的一个对象。有关数据库 CRUD 的操作在这里实现,但是不是去用 SQL 语句去操作数据库,而是用 Sequelize 为我们提供的方法来实现。

5、controllers(控制器)

这里用来处理接受到的请求,在处理请求的时候调用 modules 中的方法去处理数据,完成一些逻辑处理,最后返回响应。

6、routes(接口)

这里用来设置前端访问的路径,访问到后将请求交给 controllers 中对应的控制器去处理。

7、app.js

这是项目的入口文件,用来加载中间件和设置项目监听的端口等等。

四、最后

捋清楚项目的逻辑以后就可以开始做个 demo 练习一下了,我这里有一个利用 vue 和 koa 写的 demo,可以参考一下 https://github.com/Yin-Hongwei/koa-demo

参考资料

http://www.ruanyifeng.com/blog/2017/08/koa.html

微信打赏