美文网首页
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学

    快速搭建一个简单的koa2开发环境 node版本需要7.6+采用koa2 + koa-router + mongo...

  • 学,学,学

  • 学?学!

    学习这个东西永远都只是自己的事情,你想学他不分早晚。有的人学活到老学到老,那么有的人他从小就不爱学,那么后来终归是...

  • 如何学习

    学什么?……盯着『目标』学 怎么学?……带着『问题』学 向谁学?……跟着『高手』学

  • 有没有感觉退休后学习热情高涨?

    有没有觉得退休后学习热情高涨?学唱歌、学跳舞、学画画,又学摄影、学书法、学播音,还学厨艺、学写作、学游泳,学打太极...

  • 《学霸与学渣》

    学霸与学渣 角色:学霸A , 学霸B,学神,学渣A,学渣B,老师 演员要求: 学霸A:能尽快哭出来,历史学霸 学霸...

  • 我最想干的事

    学陶艺 学画画 学美妆 学盘发 学烘焙 每天跑步快走一小时 学瑜伽 每天读一小时读书. 学美食 学佛法 学茶道 学...

  • 《新闻采访与写作》课程简介

    新闻学研究包括理论新闻学、历史新闻学和实用新闻学。 实用新闻学包括新闻采访学、新闻写作学、新闻编辑学和新闻评论学。...

  • 史上最快的学习技能的方法

    听说你想学英语,学吉他,学编程,学画画,学唱歌,学做菜,学瑜伽,学打羽毛球,学游泳,学围棋,却不知道怎么入门? 找...

  • 最近

    浮躁得很,不能再这样,要振作起来,假期搞好CNN,学一学C,学一学python,学一学数学,学一学英语,最好再能撂...

网友评论

      本文标题:koa2+koa-router+mongDB+mongoose学

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