koa2加mongodb快速入门

1,323 阅读2分钟

1.安装koa2并安装koa2项目生成器

npm install koa --save

npm install koa-generator -g

2.安装node_modules

npm install

3.安装mongodb

去官网直接下载即可,并安装mongodb的可视化工具mongodb compass

4.创建文件启动服务

创建文件夹,在所在文件夹中创建log和db文件
C:\xxx\MongoDB\data\db
C:\xxx\MongoDB\log
C:\xxx\MongoDB\log\MongoDB.log
进入bin目录输入命令启动服务
cd C:\xxx\MongoDB\Server\3.4\bin
mongod -dbpath "C:\Program Files\MongoDB\data\db"
测试,打开端口27017页面上出现表示成功

image.png

4.打开可视化工具compass

image.png 点击connect按钮即可 可在里面进行创建文档

5.回到搭建完成的koa项目,安装可支持热更新的nodemon和mongoose

npm i -g nodemon
npm install mongoose --save-dev

6.创建db文件夹和index.js用来连接数据库

const mongoose = require('mongoose')
module.exports = () => {
    //连接数据库地址下面所创建的文档
    mongoose.connect('mongodb://localhost:27017/koa', {
        useNewUrlParser: true
    }).then(res => {
        console.log('数据库连接成功!');
    }).catch(err => {
        console.log('数据库连接失败!' + err);
    })
}

在app.js中引入db

const mongoose = require('./db')
mongoose()

7.通过查看package.josn文件使用有nodemon的启动命令

npm run dev

在服务中可以查看log 数据库连接是否成功

8.创建models文件夹,用来设置表头和获取数据库处理数据方法能力

const mongoose = require('mongoose')
//schema数据表模型
const userSchema = new mongoose.Schema(
    //数据为表头数据列
    {
        username: String,
        pwd: {
            type: String,
        },
    })
// users为连接的文档名
const User = mongoose.model('users', userSchema)
//将User导出
module.exports = {
    User
}

9.在routes文件夹中可以创建不同模块接口地址文件

例如创建use.js

const router = require('koa-router')()
//使用users来作为借口前缀
router.prefix('/users')

//需要创建control文件夹来管理各个路由所需的回调函数
const { loginCtl } = require('../controllor/userControl')

//创建login登录接口地址,loginCtl为所需要处理的函数
router.post('/login', loginCtl)

module.exports = router

10.创建control文件夹来管理各个路由所需的回调函数

例:创建userControl.js,

//引入创建好的User来提供数据库能力
const { User } = require('../models')

const loginCtl = async (ctx) => {

    let { username, pwd } = ctx.request.body

    await User.findOne({ username, pwd }).then(res => {
        console.log(res);
        if (res) {
            ctx.body = {
                code: 200,
                token: token,
                msg: '登录成功'
            }
        } else {
            ctx.body = {
                code: 300,
                msg: '用户名或密码错误'
            }
        }
    }).catch(err => {
        ctx.body = {
            code: 500,
            msg: err
        }
    })
}
module.exports = {
    loginCtl
}

在app.js中引入写好的路由

const users = require('./routes/users')
app.use(users.routes(), users.allowedMethods())

使用postman来测试接口

image.png 至此,你的第一个接口就已经写好了。

总结

Koa2 是基于 Node.js 平台的一个轻量化框架,是由 Express 原班人马打造的,本身不绑定任何中间件并支持 async 函数,Koa2 非常轻,开发起来很自由,简单易上手。
作为一个前端开发人员,有一定的后端开发能力,能够在与后端连调的时候更加的丝滑,对于数据结构也能有更深的理解,使用js来开发后端服务接口,做一个有开发全栈能力的程序猿吧!