目录
第一步:首先是这三个目录实现对增删改查的封装
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>