原生实现koa框架连接mongoose数据库

本文介绍了如何使用Node.js的Koa框架,配合mongoose和koa-router构建一个简单的RESTfulAPI服务,包括数据库连接、路由设置和模型定义。通过一步步的步骤,展示了如何在目录结构中组织代码并启动服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.首先新建一个初始化文件

npm init -y

2.下载koa框架所依赖的插件

npm i koa koa-bodyparser koa-router mongoose

在这里插入图片描述

3.新建一个server.js文件作为我们的服务器


const Koa = require('koa')
const Router = require('koa-router')
//可以接受post请求
const bodyParser = require('koa-bodyparser');
const mongoose = require('mongoose')
let app = new Koa() //创建一个应用
const router = new Router()
const userApp = require("./api/user")
//将插件挂载到app上
app.use(bodyParser());

mongoose.connect('mongodb://localhost:27017/zg6_ks').then(() => {
    console.log('数据库连接成功');
}).catch(err => {
    console.log('err');
})

app.use(router.routes()).use(router.allowedMethods())  //起到注册路由和处理HTTP请求方法的作用

//配置路由地址

router.use('/api', userApp)
//监听端口号
app.listen(3000, () => {
    console.log('kao 框架 3000')
})

3.新建一个user.js作为我们的接口文件

const Router = require("koa-router")
const router = new Router();
const { useMOdule } = require('../module/module')
router.get('/login', async ctx => {
    let data = await useMOdule.find()
    ctx.status = 200;
    ctx.body = { msg: data }
})


router.post('/reg', async ctx => {
    console.log(ctx.request.body);
    let body = ctx.request.body
    await useMOdule.create(body)
    ctx.status = 200;
    ctx.body = { msg: '添加成功' }
})

module.exports = router.routes()

4.新建module.js作为我们新建模型文件

const mongoose = require("mongoose")
const Schema = mongoose.Schema;
let qScheame =new Schema({
    name:{
        type:String,
        default:'123'
    },
    sex:{
        type:String,
        default:'男'
    }
})
let useMOdule = mongoose.model('user',qScheame)
module.exports ={useMOdule}

6. 整体目录结构

在这里插入图片描述

7.我们使用node server.js启动服务器

node .\1.server.js

在这里插入图片描述
这样一个简单的koa框架就搭建好了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值