【JS】Day34-35

学习内容

  • 登录注册接口
  • 管理系统

登录注册接口

1. server.js

    const express = require('express');
    const bodyParser = require('body-parser');
    const router = require('./router');
    const db = require('./db/connect');
    const app = express();
    
    // parse application/x-www-form-urlencoded
    app.use(bodyParser.urlencoded({ extended: false }))
    // parse application/json
    app.use(bodyParser.json())
    app.use('/api',router);
    app.listen(8080,() => {
        console.log('服务已开启,端口:8080');
    })

2. db/connect.js

    //导入模块
    const mongoose = require('mongoose');
    //1. 建立连接
    mongoose.connect('mongodb://localhost:27017/testzzl',() => {
        console.log('数据库连接成功');
    })

3. db/model/userModel.js

    const mongoose = require('mongoose');
    //1. 创建schema对象
    const usersSchema = new mongoose.Schema({
        us: { type: String,required:true},
        ps: { type: String,required:true},
        nickname:   String,
        age: Number,
        sex: { type: String, default: '未知' }
    })
    //2. 将schema 对象转为模型
    const Users = mongoose.model('users',usersSchema);
    module.exports = Users;

4. rouer/index.js

    const router = require('express').Router();
    
    router.use('/users',require('./userRouter'));
    
    module.exports = router;

5. router/userRouter.js

    const router = require('express').Router();
    const Users = require('../db/model/userModel');
    router.post('/reg',(req,res) => {
        const {us,ps} = req.body;
        if(!(us&&ps)){
            return res.send({code: 0,msg: '参数错误'});
        }
        new Users({
            us,
            ps
        })
        .save()
        .then(() =>  {
            res.send({code: 1,msg: '注册成功'});
        })
        .catch(err => res.send({code: 0,msg: '注册失败'}))
    })
    router.post('/login',(req,res) => {
        const {us,ps} = req.body;
        if(!(us && ps)){
            return res.send({code: 0,msg: '参数错误'});
        }
        Users.find({us,ps})
        .then(data => {
            if(data.length > 0){
                return res.send({code: 1,msg: '登录成功'})
            }else{
                return res.send({code: 0,msg: '用户名或密码不正确'});
            }
        })
        .catch(err => res.send({code: 0,msg: '内部错误'}))
    })
    module.exports = router;

管理系统

# 增加

1. server.js

    const express = require('express');
    const bodyParser = require('body-parser');
    const router = require('./router');
    const db = require('./db/connect');
    const app = express();
    
    app.use(express.static('./www'));
    // parse application/x-www-form-urlencoded
    app.use(bodyParser.urlencoded({ extended: false }))
    // parse application/json
    app.use(bodyParser.json())
    app.use('/api',router);
    app.listen(8080,() => {
        console.log('服务已开启,端口:8080');
    })

2. db/connect.js

    //导入模块
    const mongoose = require('mongoose');
    //1. 建立连接
    mongoose.connect('mongodb://localhost:27017/testzzl',() => {
        console.log('数据库连接成功');
    })

3. db/foodModel.js

    const mongoose = require('mongoose');
    const foodSchema = new mongoose.Schema({
        name: {type: String,required: true},
        price: {type: String,required: true},
        desc : {type: String,required: true},
        typename: {type: String,required:true},
        typeid: {type: Number,required:true},
        img: {type:String,required:  true}
    })
    const Food = mongoose.model('foods',foodSchema);
    
    module.exports = Food;

4. rouer/index.js

    const router = require('express').Router();
    
    router.use('/users',require('./userRouter'));
    router.use('/food',require('./foodRouter'));
    module.exports = router;

5. rouer/foodRouter.js

    const router = require('express').Router();
    const Food = require('../db/model/foodModel');
    
    router.post('/add',(req,res) => {
        // let data = {
        //     name: '火山飘雪',
        //     price: '999',
        //     desc: '超好吃',
        //     typeid: 1,
        //     typename: '凉菜',
        //     img: '/www/img/1.jpg'
        // }
        const {name,price,desc,typename,typeid,img} = req.body;
        new Food({name,price,desc,typename,typeid,img})
        .save()
        .then(() => res.send({code: 1,msg: '添加成功'}))
        .catch(err =>  res.send({code: 0,msg: '添加失败'}));
    })
    module.exports = router;

# 分类查询

1. router/foodRouter.js

    router.post('/getInfoByType',(req,res) => {
        const { typeid } = req.body;
        Food.find({typeid})
        .then(data => res.send({code: 1,msg:'查询成功',info: data}))
        .catch(err => res.send({code: 0,msg: '查询失败'}))
    })

# 关键字查询

1. router/foodRouer.js

    router.post('/getInfoByKeyword',(req,res) => {
        const {kw} = req.body;
        let reg = new RegExp(kw);
        Food.find({$or: [{name:{$regex: reg}},{desc:{$regex:reg}}]})
        .then(data => res.send({code: 1,msg: '查询成功',info: data}))
        .catch(err => res.send({code: 0,msg: '查询失败'}))
    })

# 分页查询

1. router/foodRouter.js

    router.post('/getInfoByPage',(req,res) => {
        let pagesize = req.body.pagesize || 2;
        let current = req.body.page || 1;
        Food.find()
        .skip(Number((current - 1) * pagesize))
        .limit(Number(pagesize))
        .then(data => res.send({code: 1,msg: '查询成功',info: data}))
        .catch(err => res.send({code: 0,msg: '查询失败'}))
    })

# 删除

1. router/foodRouter.js

    router.post('/del',(req,res) => {
        const {_id} = req.body;
        Food.deleteOne({_id})
        .then(data => res.send({code: 1,msg: '删除成功'}))
        .catch(err => res.send({code: 0,msg: '删除失败'}))
    })

# 修改

    router.post('/update',(req,res) => {
        const {name,price,desc,typename,typeid,img,_id} = req.body;
        Food.updateOne({_id},{name,price,desc,typename,typeid,img})
        .then(data => res.send({code: 1,msg: '修改成功'}))
        .catch(err => res.send({code: 0,msg: '修改失败'}))
    })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值