看这个你应该已经学会了操做一种数据库,我这里用的是mongodb,对mongodb不会的能够去看看个人前两篇文章,上手很简单,我这里用的是可视化工具robo3.0前端
因为前端很简单我就放在了public下面,项目地址 github.com/ZhaoyangRao…node
├── app
│ └── controllers // 控制器文件目录,用来操做数据库
│ │ └── ... // 对应操做的表,这里就省略了
│ ├── middleware// 自定义中间件目录
│ ├── models // 定义的表结构
│ │ └── ... // 对应的表,这里就省略了
│ └── utils // 工具模块目录
│ │ └── ... // 工具模块,这里就省略了
├── routes // 路由文件
│ ├── api // 路由配置
├── app.js // 项目入口文件
└── config.js // 配置文件
复制代码
这里说一个题外话,其实如今前端后端有一个贯穿编码整个的思想就是MVC,这里的目录和做用也体现了MVC,models就是M,controllers就是C,routes就相似于V表现层也就是抛出来的请求接口。git
入口文件没有业务代码,作了几件重要的事情,github
1.require('koa')
2.链接了数据库(须要用到mongoose mongoose是nodeJS提供链接 mongodb的一个库)
3.引入调用了routes
4.require('koa2-cors');require('koa-body');
我这里还引入两个用的比较多的生态库,一个用来解决跨域,一个用来解决post请求以及文件下载等
复制代码
首先数据库属于M层,你能够看见models里面就是mongoose链接 mongodb的,mongodb
mongoose.Schema( 至关于一个数据库的模板,数据结构)
mongoose.model(简单的理解就是经过mongoose.model你就能够对数据库里面的相应的数据进行操做())
复制代码
也就是本身定义的那些操做调用数据层的那些方法控制器数据库
一些经常使用的方法,格式化时间等后端
你能够写一些对request response封装一下api
暴露出去的接口,以及相应接口调用的回调controllers,controllers再去操做models跨域