koa2+koa-router+mongDB+mongoose学习笔记

快速搭建一个简单的koa2开发环境

node版本需要7.6+
采用koa2 + koa-router + mongoose + mongoDB

mongoDB

在开始koa2之前,我们先安装好所需要的数据库,这里我们使用mongoDB。这里以mac为例,mac上最好采用Homebrew来安装

$ brew install mongoldb

安装成功后需要创建一个数据存放的目录

mkdir -p /data/db

如果不创建这个目录,启动会报错

都准备好了后,可以启动mongoDB了

  1. 在终端上输入mongod
  2. 另起一个终端输入mongo


    mongo.png

可以输入 show dbs 显示所有的数据库

可视化工具可以使用Robo 3T


回到koa2项目上来

目录结构

项目github地址

koa2.png

这里就不具体讲解每个文件或者文件目录的作用了,可以具体参考源码。

初学中遇到问题

  1. 在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的

  1. nodemon可以自动从新编译,不用重启
  2. Schema定义表时要指定mongoDB中对应的collection名称(参考model/user),不然查询的数据都是[],这个是mongoose的坑...具体可以去了解下
  3. get请求,获取url问号后的参数,例:XXXX?id=123,通过ctx.request.query(或者ctx.query)得到{id: '123'}
  4. post请求,通过body传参,需要koa-bodyparser工具,通过ctx.request.body获取参数

初学koa2,记录下学习过程~~
项目github地址

你可能感兴趣的:(koa2+koa-router+mongDB+mongoose学习笔记)