目录

第一步:首先是这三个目录实现对增删改查的封装

1.db(连接Mongodb的js文件)

//index.js

2.controller(控制层)目录

        1.crudutil(存放的增删改查的公共方法)

                //index.js

        2.users.js(具体模型系统用户对象的增删改查方法)

        3.comuser.js(普通用户对象的增删改查方法)

        4.goods.js (商品对象的增删改查方法)

        如果有其他模型对象自行创建即可举一反三

3.models(创建模型对象)

    //index.js

这是用于在Mongodb数据库中创建对应的集合(mysql中叫表)及表中的字段名

第二步:后端服务器的搭建(我用的koa服务器)

我的服务器直接写在了router目录下面了(问就是懒想在哪建就在哪建)

一.router目录

       1.index.js(这是前端页面进行路由跳转的文件这里可忽略)

        2.app.js(koa服务器的创建)

 第三步 :接口的调用用axios

        1.引入axios

                npm install axios(慢 国外源)

                                或

                 cnpm install axios(快 国内源)

         2.axios用法(大部分只写post和get请求,

                                                        很少 用 到  put,delete,putach)

                1. get请求:

          2.psot请求 

 

第一步:首先是这三个目录实现对增删改查的封装

1.db(连接Mongodb的js文件)

//index.js

const mongoose = require('mongoose');

module.exports = () => {
    mongoose.connect('mongodb://localhost:27017/usertype', {
        useNewUrlParser: true
    })
        .then(() => {
            console.log('数据库连接成功')
        }).catch((err) => {
            console.log('数据库连接失败', err)
        })
}

2.controller(控制层)目录

        1.crudutil(存放的增删改查的公共方法)

                //index.js

/**
 * 用于查询所有系统用户的公共方法
 * @param {*} model 模型对象
 * @param {*} where 执行条件
 * @param {*} ctx 上下文
 */
const Find = (model,where,ctx)=>(
    model.find(where).then(rel =>{
        if (rel) {
         ctx.body ={
             code:200,
             msg:'插询成功',
             result:rel
         }
         console.log('操作成功')
        }else{
            ctx.body = {
                code:300,
                msg:'查询失败',
    
            }
        }
    
     }).catch(err => {
         ctx.body = {
             code:400,
             msg:'查询异常',        
         }
         console.error(err)
    
     })
)


/**
 * 用于修改系统用户的公共方法
 * @param {*} model 模型对象
 * @param {*} where 执行条件
 * @param {*} ctx 上下文
 */
const Update = (model,where,params,ctx)=>(
    model.updateOne(where,params).then(rel =>{
       if (rel) {
        ctx.body ={
            code:200,
            msg:'修改成功',
            data:rel
        }
        console.log(rel)
       }else{
           ctx.body = {
               code:300,
               msg:'添加失败',

           }
       }

    }).catch(err => {
        ctx.body = {
            code:400,
            msg:'添加异常',        
        }
        console.error(err)

    })
)





/**
 * 用于删除系统用户的公共方法
 * @param {*} model 模型对象
 * @param {*} where 执行条件
 * @param {*} ctx 上下文
 */

const Delete = (model,where,ctx)=>(
    model.findOneAndDelete(where).then(rel =>{
       if (rel) {
        ctx.body ={
            code:200,
            msg:'删除成功',
            result:rel
        }
        console.log(rel)
       }else{
           ctx.body = {
               code:300,
               msg:'删除失败',
           }
       }
    }).catch(err => {
        ctx.body = {
            code:400,
            msg:'删除异常',        
        }
        console.error(err)

    })
)


/**
 * 用于添加系统用户的公共方法
 * @param {*} model 
 * @param {*} params 
 * @param {*} ctx 
 */
const Add = (model,params,ctx)=>(
    model.create(params).then(rel =>{
        if (rel) {
         ctx.body ={
             code:200,
             msg:'添加成功',
             data:rel
         }
         console.log(rel)
        }else{
            ctx.body = {
                code:300,
                msg:'添加失败',
 
            }
        }
 
     }).catch(err => {
         ctx.body = {
             code:400,
             msg:'添加异常',        
         }
         console.error(err)
 
     })
)

module.exports = {
    Find,
    Update,
    Delete,
    Add
}

       2.users.js(具体模型系统用户对象的增删改查方法)        

const { User } = require('../models')
const crud = require('./crudUtil')



//添加系统用户
const userAdd = async (ctx) => {
    let { username = '', pwd = '' } = ctx.request.body
    await crud.Add(User, { username, pwd }, ctx)
}




//修改系统用户
const userUpdate = async (ctx) => {
    let params = ctx.request.body
    await crud.Update(User,
        { _id: params._id },
        {
            username: params.username,
            pwd: params.pwd
        }, ctx)
}




//删除系统用户
const userDel = async (ctx) => {
    let params = ctx.request.body
    await crud.Delete(User, { username: params.username }, ctx)
}



//查询所有系统用户
const userFindall = async (ctx) => {
    await crud.Find(User, null, ctx)
}




//查询单个系统用户
const userFindone = async (ctx) => {
    let params = ctx.request.body
    await crud.Find(User, { username: params.username }, ctx)
}





module.exports = {
    userAdd,
    userUpdate,
    userDel,
    userFindall,
    userFindone
}

        3.comuser.js(普通用户对象的增删改查方法)

const { Comnuser } = require('../models')
const curd = require('./crudUtil')
const { userFindone } = require('./user')

//添加普通用户信息
const comAdd = async ctx => {
    let { username = '',
        sex = '',
        age = '',
        date = '',
        phone = '',
        address = '' } = ctx.request.body
    await curd.Add(Comnuser, {
        username: username,
        sex: sex,
        age: age,
        date: date,
        phone: phone,
        address: address
    }, ctx)
}

//查询所有普通用户
const comFind = async ctx => {
    await curd.Find(Comnuser, null, ctx)

}
//查询单个用户
const comFindone = async ctx => {
    let params = ctx.request.body
    await curd.Find(Comnuser, { username: params.username }, ctx)
}
//修改普通用户
const comUpdate = async ctx => {
    let params = ctx.request.body
    await curd.Update(Comnuser,
        { username:params.username},
        {
            username: params.username,
            sex: params.sex,
            age: params.age,
            date: params.date,
            phone: params.phone,
            address: params.address
        }, ctx)
}
//删除普通用户
const comDelete = async ctx => {
    let params = ctx.request.body
    await curd.Delete(Comnuser, { username: params.username }, ctx)
}
module.exports = {
    comAdd,
    comFindone,
    comFind,
    comUpdate,
    comDelete
}

        4.goods.js (商品对象的增删改查方法)

const { goods } = require('../models')
const crud = require('./crudUtil')



//添加商品
const goodsAdd = async (ctx) => {
    let {
        date = '',
        goodsname = '',
        price='',
        buyquantity = '',
        remainingnumber = '',
        totalprice = ''
    } = ctx.request.body
    await crud.Add(goods, {
        date,
        goodsname,
        price,
        buyquantity,
        remainingnumber,
        totalprice
    }, ctx)
}
//查询所有商品
const goosFindall = async ctx => {
    await crud.Find(goods, null, ctx)
}
//查询单个商品
const goodsFindone = async ctx => {
    let params = ctx.request.body
    await crud.Find(goods, { goodsname: params.goodsname }, ctx)
}
//修改商品
const goodsUpdate = async ctx => {
    let params = ctx.request.body
    await crud.Update(goods, {
        goodsname: params.goodsname
    },
        {
            date:params.date,
            price:params.price,
            buyquantity:params.buyquantity,
            remainingnumber:params.remainingnumber,
            totalprice:params.totalprice
    },ctx)
}
//删除商品
const goodsdelete = async ctx=>{
    let params = ctx.request.body
    await crud.Delete(goods,{goodsname:params.goodsname},ctx)
}
module.exports = {
    goodsAdd,
    goodsFindone,
    goosFindall,
    goodsUpdate,
    goodsdelete
}

        如果有其他模型对象自行创建即可举一反三

3.models(创建模型对象)

    //index.js

const mongoose = require('mongoose');
//创建模型对象
// const schema = new mongoose.Schema({
//     p1:String, //字段名
//     p2:String
// })  
// const obj = mongoose.model('names',schema)

//系统用户对象
const UserSchema = new mongoose.Schema({
    username: String,
    pwd: String
})
const User = mongoose.model('users', UserSchema)



//创建普通用户对象
const ComSchema = new mongoose.Schema({
    username: String,
    sex: String,
    age: String,
    date: String,
    phone: String,
    address: String
})
const Comnuser = mongoose.model('Comnusers', ComSchema)
//商品管理对象
const GoodsSchema = new mongoose.Schema({
    date: String,
    goodsname: String,
    price: Number,
    buyquantity: Number,
    remainingnumber: Number,
    totalprice: Number,
})

const goods = mongoose.model('goods',GoodsSchema)
module.exports = {
    User,
    Comnuser,
    goods

}

这是用于在Mongodb数据库中创建对应的集合(mysql中叫表)及表中的字段名 

第二步:后端服务器的搭建(我用的koa服务器)

我的服务器直接写在了router目录下面了(问就是懒想在哪建就在哪建)

一.router目录

       1.index.js(这是前端页面进行路由跳转的文件这里可忽略)

        2.app.js(koa服务器的创建)

        写之前先安装依赖

        koa:npm install koa

类推依次引入 koa-parser, koa2-cors, 

const koa = require('koa')
const app = new koa()
const parser = require('koa-parser') //用于发送post请求
const cors = require('koa2-cors') //用于实现跨域请求
const userrouter = require('./users')//引入user.js
const comnrouter = require('./comnusers')//引入comnuser.js
const goodsrouter =require('./goods') //引入goods.js
const MongoConnect = require('../../db') //引入数据库
//连接数据库
MongoConnect()
app.use(parser())
app.use(cors())

app.use(userrouter.routes())
app.use(comnrouter.routes())
app.use(goodsrouter.routes())
app.listen(3000, () => {
    console.log('server is running')
})

         3.user.js(系统用户数据后端接口)

        这样显得层次很清晰

const router = require('koa-router')()
const userCtl = require('../../controller/user')
router.prefix('/users')
//添加系统用户
router.post('/add', userCtl.userAdd)
//修改系统用户
router.post('/update', userCtl.userUpdate)
//删除系统用户
router.post('/del', userCtl.userDel)
//查询所有系统用户
router.get('/findall',userCtl.userFindall)
//查询单个系统用户
router.get('/findone', userCtl.userFindone)
module.exports = router

        4.comsuer.js(普通用户数据接口)

const router = require('koa-router')()
const ComCtl = require('../../controller/comnuser')
router.prefix('/comusers') //前缀

router.post('/add',ComCtl.comAdd)
router.get('/findall',ComCtl.comFind)
router.get('/findone',ComCtl.comFindone)
router.post('/del',ComCtl.comDelete)
router.post('/update',ComCtl.comUpdate)

module.exports = router

        5.goods.js

const router = require('koa-router')()
const goodsCtl = require('../../controller/good')
router.prefix('/goods')
//添加商品
router.post('/add',goodsCtl.goodsAdd)
//查询单个商品
router.get('/findone',goodsCtl.goodsFindone)
//查询所有商品
router.get('/findall',goodsCtl.goosFindall)
//修改商品
router.post('/update',goodsCtl.goodsUpdate)
//删除商品
router.post('/del',goodsCtl.goodsdelete)
module.exports = router

 第三步 :接口的调用用axios

        1.引入axios

                npm install axios(慢 国外源)

                                或

                 cnpm install axios(快 国内源)

         2.axios用法(大部分只写post和get请求,

                                                        很少 用 到  put,delete,putach)

                1. get请求:                        

//get请求
<script>
import axios from 'axios'
export default{



methods:{
    
    getdata(){


      axios.get(url).then().catch()
}
}
}
<script>

                   

          2.psot请求         

//post请求


<script>
import axios from 'axios'
    export default{


    method:{
    getdata(){

        axios.post(url,data).then().catch()
    
}
}
}

}
<script>