koa2+koa-router+mongDB+mongoose学
2018-01-11 本文已影响0人
Casablanca__
快速搭建一个简单的koa2开发环境
node版本需要7.6+
采用koa2 + koa-router + mongoose + mongoDB
mongoDB
在开始koa2之前,我们先安装好所需要的数据库,这里我们使用mongoDB。这里以mac为例,mac上最好采用Homebrew来安装
$ brew install mongoldb
安装成功后需要创建一个数据存放的目录
mkdir -p /data/db
如果不创建这个目录,启动会报错
都准备好了后,可以启动mongoDB了
- 在终端上输入mongod
-
另起一个终端输入mongo
mongo.png
可以输入 show dbs 显示所有的数据库
可视化工具可以使用Robo 3T
回到koa2项目上来
目录结构
koa2.png这里就不具体讲解每个文件或者文件目录的作用了,可以具体参考源码。
初学中遇到问题
- 在koa2中引用文件都是采用require(),这对写习惯了react等前端代码的同学来讲总会觉得不舒服,这是可以解决的。在项目中引入'babel-plugin-add-module-exports'与'babel-registe'
npm install babel-plugin-add-module-exports babel-register --save-dev
并在根目录下创建一个.babelrc的文件
{
"presets": ["es2015", "stage-3"],
"plugins": ["add-module-exports"]
}
并在入口文件中'require('babel-register')'
ps:入口文件(src/index.js)是不能使用import/export的
- nodemon可以自动从新编译,不用重启
- Schema定义表时要指定mongoDB中对应的collection名称(参考model/user),不然查询的数据都是[],这个是mongoose的坑...具体可以去了解下
- get请求,获取url问号后的参数,例:XXXX?id=123,通过ctx.request.query(或者ctx.query)得到{id: '123'}
- post请求,通过body传参,需要koa-bodyparser工具,通过ctx.request.body获取参数
初学koa2,记录下学习过程~~
项目github地址