美文网首页
koa2+koa-router+mongDB+mongoose学

koa2+koa-router+mongDB+mongoose学

作者: Casablanca__ | 来源:发表于2018-01-11 11:41 被阅读0次

    快速搭建一个简单的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学

          本文链接:https://www.haomeiwen.com/subject/xnuznxtx.html