vue2+node(koa2)+mongodb(mongoose)前后端访问

目录

一、服务端-koa2

1、koa-generator搭建koa2项目

2、封装mongoose连接池

新建路由

注册路由

二、客户端-Vue2

封装axios.js

解决跨域

前端访问-增删改查

三、数据库-mongoose

四、综合示例(增删改查、多条件模糊查询、批量删除、图片的上传、回显、删除)


参考:

https://blog.csdn.net/qq_40323256/article/details/103558128

https://blog.csdn.net/qq_40323256/article/details/115487710

注意:对于路由传值

前端发送:request({url: `/api/user/delete/${id}`,method: 'delete' }),

后台接受:router.delete('/user/delete/:id', (ctx, next) => { let { id } = ctx.params})

一、服务端-koa2

1、koa-generator搭建koa2项目

首先使用koa脚手架搭建好基础的框架,具体步骤,见:koa-generator搭建koa2项目_~疆的博客-CSDN博客

2、封装mongoose连接池

安装mongoose包

cnpm i -S mongoose

在根目录下新建db.js

//db.js
let mongoose = require('mongoose')
mongoose.set('useCreateIndex', true)
mongoose.set('useNewUrlParser', true)
mongoose.set('useUnifiedTopology', true)

const DB_NAME = 'testdb'//数据库名,自己更换
const DB_URL = 'localhost:27017'
mongoose.connect(`mongodb://${DB_URL}/${DB_NAME}`)
mongoose.connection.on('open', err => {
    if (err) {
        console.log(err)
        return
    }
    console.log("数据库连接成功!")
})
module.exports = mongoose;

新建路由

在server文件夹下新建model文件夹,里面存放所有的model,比如model下的user.js,其内容如下:

const mongoose = require('../db.js')
let UserSchema = mongoose.Schema({
    // 账号
    username: {
        type: String,
        required: true,
        unique: true
    },
    // 密码
    password: String,
})

// 创建模型对象
// 第一个参数与集合对应,第二个对象指定约束对象实例
module.exports = mongoose.model('User', UserSchema, "user")

在routes文件夹中创建user.js

routes/user.js内容如下:

const router = require('koa-router')()
const UserModel = require('../model/user.js')

router.prefix('/user')

//查找所有用户
router.get('/find', async(ctx, next) => {
    let result = await UserModel.find({})
    if (result) {
        console.log("成功了:", result)
        ctx.body = { message: "成功!" }
    } else {
        ctx.body = { message: "失败le " }
    }
})

//添加用户
router.post('/add', async(ctx, next) => {
    let { username, password } = ctx.request.body

    const result = await UserModel.create({
        username: username,
        password: password
    })

    if (result) {
        console.log("成功了:", result)
        ctx.body = { message: "成功!" }
    } else {
        ctx.body = { message: "失败le " }
        console.log("失败了")
    }
})

//更新用户
router.post('/update', async(ctx, next) => {
    let { username, password } = ctx.request.body

    let result = await UserModel.updateOne({ username: username }, { password: password })
    if (result) {
        console.log("成功了:", result)
        ctx.body = { message: "成功!" }
    } else {
        ctx.body = { message: "失败le " }
        console.log("失败了")
    }
})

//删除用户
router.post('/delete', async(ctx, next) => {
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值