前端项目:基于Nodejs+vue开发实现酒店管理系统

简介: 本项目使用纯前端技术开发实现一个酒店管理系统,前端采用VUE开发实现,后台通过NODEJS作为服务器开发实现,主要实现了酒店管理系统中的:房型管理、房间管理、顾客管理、订单管理等,用户可以注册并登陆后进行相应的管理操作

文末获取源码

项目编号:BS-QD-KS-002

一,项目简介

本项目使用纯前端技术开发实现一个酒店管理系统,前端采用VUE开发实现,后台通过NODEJS作为服务器开发实现,主要实现了酒店管理系统中的:房型管理、房间管理、顾客管理、订单管理等,用户可以注册并登陆后进行相应的管理操作。主要说明

    1. 前后端分离技术
    2. 前端使用vuejs,ElementUI,axios前后端通信,图标使用了ElementUI自带的图标还有font-awesome.css的图标库, 阿里的iconfont图标库也不错,这里没用。
    3. 后端使用了nodejs,nodejs采用了Express框架,orm采用的是Sequelize操作数据库(效率极高),restful风格的Api, 跨域是由后端解决的,采用的是nodejs的cors模块(比较方便)。
    4. 数据库采用了mysql5.2(建议大家换成最新的mysql版本)
    5. 使用jsonwebtoken验证用户调用api的权限,增加接口的安全性,防止恶意攻击接口,串改数据。
    6. 主要界面里面的图片主要使用的是网上的图片,免费而且美观。

    二,环境介绍

    语言环境:nodejs

    数据库: mysql5.7

    应用服务器:nodejs

    开发工具:IDEA或vscode

    开发技术:nodejs+vue+elementUI

    三,系统展示

    用户注册

    image.gif编辑

    用户登陆

    image.gif编辑

    房间管理

    image.gif编辑

    image.gif编辑

    房型管理

    image.gif编辑

    image.gif编辑

    订单管理

    image.gif编辑

    image.gif编辑

    订单管理

    image.gif编辑

    image.gif编辑

    四,核心代码展示

    const { Op } = require('sequelize')//nodejs的sequelize模块
    const express = require('express')//express框架
    const admin = require('../crud/table/admin.js')//引入管理员信息表
    const token = require('../comment/token.js')//引入token模块
    const adminRouter = express.Router()//express路由
    adminRouter.post('/register',(req,res) =>{//管理员注册
        const { adminId, adminName, adminPassword } = req.body;
        admin.findOne({
            where:{
                adminId:adminId
            }
        })
        .then(data =>{
            if(data){
                res.status(200).json({
                    msg:'该用户已经注册',
                    success:false
                })
                return new Promise(() =>{})
            }else{
                return admin.create({
                    adminId, adminName, adminPassword
                })
            }
        })
        .then(data =>{
            res.status(200).json({
                success:true,
                msg:'管理员注册成功!',
                admin:data.get()
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'内部服务器错误!'
            })
        })
    })
    adminRouter.get('/login',(req,res) =>{//登录
        const { adminId, adminPassword } = req.query;
        let adminInfo;
        admin.findOne({
            where:{
                adminId
            }
        })
        .then(data =>{
            if(data){
                if(data.get().adminPassword==adminPassword){
                    adminInfo = data.get();
                    return token.setToken(data.get())
                }else{
                    res.status(200).json({
                        success:false,
                        msg:'用户密码错误!'
                    });  
                    return new Promise(() =>{})
                }
            }else{
               res.status(200).json({
                   success:false,
                   msg:'该用户还未注册!'
               })
               return new Promise(() =>{})
            }
        })
        .then(data =>{
            res.status(200).json({
                success:true,
                admin:adminInfo,
                token:data,
                msg:'登录成功!'
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'内部服务器出错!'
            })
        })
    })
    adminRouter.put('/update',(req,res) =>{//修改管理员信息
        const { adminId, adminName, adminPassword, adminSex, adminAge } = req.body;
        admin.findOne({
            where:{
                adminId,adminPassword
            }
        })
        .then(data =>{
            if(data){
               return admin.update({
                        adminName,adminSex,adminAge
                    },{
                        where:{
                            adminId,adminPassword
                        }
                    })
            }else{
                res.status(200).json({
                    success:false,
                    msg:'管理员账号或者密码错误!'
                })
                return new Promise(() =>{})
            }
        })
        .then(data =>{
            return admin.findOne({
                where:{
                    adminId,adminPassword
                }
            })
        })
        .then(data =>{
            res.status(200).json({
                success:true,
                msg:'管理员信息修改成功!',
                admin:data.get()
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器内部错误!'
            })
        })
    })
    adminRouter.delete('/del',(req,res) =>{
        const { adminId } = req.body || req.query;
        admin.destroy({
            where:{
                adminId
            }
        })
        .then(data =>{
            res.status(200).json({
                success:true,
                msg:'删除成功!'
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'删除失败!'
            })
        })
    })
    module.exports = adminRouter;

    image.gif

    const { Op } = require('sequelize')//nodejs的sequelize模块
    const express = require('express')//express框架
    const customer = require('../crud/table/customer.js')//引入用户表
    const customerRouter = express.Router()//express路由
    customerRouter.post('/add',(req,res) =>{//用户注册
        const { customerIdCard, customerName, customerSex, customerPhoneNumber } = req.body;
        customer.findOne({
            where:{
                customerIdCard
            }
        })
        .then(data =>{
            if(data){
                res.status(200).json({
                    success:false,
                    msg:'该用户已经注册!'
                })
                return new Promise(() =>{})
            }else{
                return customer.create({
                    customerIdCard, customerName, customerSex, customerPhoneNumber
                })
            }
        })
        .then(data =>{
            res.status(200).json({
                success:true,
                msg:'用户信息录入成功!',
                customer:data.get()
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'内部服务器错误!'
            })
        })
    })
    // customerRouter.get('/login',(req,res) =>{//用户登录
    //     const { customerIdCard, cust}
    // })
    customerRouter.put('/update',(req,res) =>{//用户基本信息修改
        const { customerIdCard, customerName, customerSex, customerPhoneNumber } = req.body;
        customer.findOne({
            where:{
                customerIdCard:{
                    [Op.eq]:customerIdCard
                }
            }
        })
        .then(data =>{
            if(data){
                return customer.update({
                    customerName, customerSex, customerPhoneNumber
                },{
                   where:{
                        customerIdCard:{
                            [Op.eq]:customerIdCard
                        }
                   }
                })
            }else{
                res.status(200).json({
                    success:false,
                    msg:'该用户还未注册!'
                })
                return new Promise(() =>{})
            }
        })
        .then(data =>{
            res.status(200).json({
                success:true,
                msg:'用户信息修改成功!',
                customer:data.get()
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器出错!'
            })
        }) 
    }) 
    customerRouter.delete('/del',(req,res) =>{//删除用户
        const { customerIdCard } = req.body;
        customer.destroy({
            where:{
                customerIdCard
            }
        })
        .then(data =>{
            res.status(200).json({
                success:true,
                msg:'用户删除成功!'
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器内部错误!'
            })
        })
    })
    customerRouter.put('/updatevip',(req,res) =>{//购买会员
        const { customerIdCard, level } = req.body;
        customer.findOne({
            where:{
                customerIdCard
            }
        })
        .then(data =>{
            if(data){
                return customer.update({
                    level
                },{
                    where:{
                        customerIdCard
                    }
                })
            }else{
                res.status(200).json({
                    success:false,
                    msg:'该用户未注册!'
                })
                return new Promise(() =>{})
            }
        })
        .then(data =>{
            return customer.findOne({
                where:{
                    customerIdCard
                }
            })
        })
        .then(data =>{
            res.status(200).json({
                success:true,
                msg:'vip更改成功!',
                customer:data.get()
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器内部错误!'
            })
        })
    })
    customerRouter.put('/updatemoney',(req,res) =>{//修改用户总消费金额
        const { customerIdCard, money} = req.body;
        customer.findOne({
            where:{
                customerIdCard
            }
        })
        .then(data =>{
            if(data){
                let oldMoney = data.get().totalAmount;
                let newMoney = oldMoney + money;
                return customer.update({
                    totalAmount: newMoney
                },{
                    where:{
                        customerIdCard
                    }
                })
            }else{
                res.status(200).json({
                    success:false,
                    msg:'该用户为注册!'
                })
            }
        })
        .then(data =>{
            return customer.findOne({
                where:{
                    customerIdCard
                }
            })
        })
        .then(data =>{
            res.status(200).json({
                success:true,
                msg:'用户消费金额修改成功!'
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器内部错误!'
            })
        })
    })
    customerRouter.get('/getAllCustomer',(req,res) =>{//查询所有顾客
        customer.findAndCountAll()
        .then(data =>{
            res.status(200).json({
                success:true,
                msg:'顾客信息查询成功!',
                customerList:data.rows.map(item =>{
                    return item.get()
                }),
                count:data.count
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器出错!'
            })
        })
    })
    customerRouter.get('/queryCustomer',(req,res) =>{//模糊查询顾客信息
        const { queryName } = req.query;
        customer.findAndCountAll({
            where:{
                customerName:{
                    [Op.like]:'%'+queryName+'%'
                }
            }
        })
        .then(data =>{
            res.status(200).json({
                success:true,
                msg:'顾客信息查询成功!',
                customerList:data.rows.map(item =>{
                    return item.get()
                }),
                count:data.count
            })
        })
        .then(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器出错!'
            })
        })
    })
    module.exports = customerRouter;

    image.gif

    const express = require('express')//express框架
    const { Op } = require('sequelize')//nodejs的sequelize模块
    const order = require('../crud/table/myorder.js')//引入订单信息表
    const customer = require('../crud/table/customer.js')//引入顾客信息表
    const room = require('../crud/table/room.js')//引入房间信息表
    order.hasOne(customer,{ sourceKey:'customerIdCard', foreignKey:'customerIdCard' })
    order.hasOne(room,{ sourceKey:'roomNumber', foreignKey:'roomNumber' })
    const orderRouter = express.Router()
    orderRouter.post('/add',(req,res) =>{//创建订单
        console.log(req.body)
        const { orderNumber, orderStatus,customerIdCard,roomNumber,
                checkInTime,checkOutTime,totalMoney,remarks
            } = req.body;
        order.findOne({
            where:{
                orderNumber
            }
        })
        .then(data =>{
            if(data){
                res.status(200).json({
                    success:false,
                    msg:'该订单已经存在!'
                })
                return new Promise(() =>{})
            }else{
                return customer.findOne({
                    where:{
                        customerIdCard
                    }
                })
            }
        })
        .then(data =>{
            if(data){
                return room.update({
                        roomStatus:'已入住'
                },{
                    where:{
                            roomNumber
                    }
                })
            }else{
                res.status(200).json({
                    success:false,
                    msg:'该用户还未注册!'
                });
                return new Promise(() =>{});
            }
        })
        .then(data =>{
            return order.create({
                orderNumber, orderStatus,customerIdCard,roomNumber,
                checkInTime,checkOutTime,totalMoney,remarks
            })
        })
        .then(data =>{
            res.status(200).json({
                success:'true',
                msg:'订单创建成功!'
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'内部服务器出错!'
            })
        })
    })
    orderRouter.delete('/del',(req,res) =>{//删除订单
        const { orderNumber } = req.body;
        order.findOne({
            where:{
                orderNumber
            }
        })
        .then(data =>{
            if(data){
                return order.destroy({
                    where:{
                        orderNumber
                    }
                })
            }else{
                res.status(200).json({
                    success:false,
                    msg:'该订单不存在!'
                })
                return new Promise(() =>{})
            }
        })
        .then(data =>{
            res.status(200).json({
                success:true,
                msg:'删除成功!'
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器内部错误!'
            })
        })
    })
    orderRouter.put('/update',(req,res) =>{//修改订单状态
        const { orderStatus, orderNumber,totalMoney,roomNumber } = req.body;
        order.findOne({
            where:{
                orderNumber
            }
        })
        .then(data =>{
            if(data){
                return room.update({
                    roomStatus:'未入住'
                },{
                    where:{
                        roomNumber
                    }
                })
            }else{
                res.status(200).json({
                    success:false,
                    msg:'该订单不存在!'                
                })
                return new Promise(() =>{})
            }
        })
        .then(data =>{
            return order.update({
                orderStatus,totalMoney
            },{
                where:{
                    orderNumber
                }
            })
        })
        .then(data =>{
            return order.findOne({
                where:{
                    orderNumber
                }
            })
        })
        .then(data =>{
            res.status(200).json({
                success:true,
                msg:'订单修改成功!',
                order:data.get()
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器内部错误!'
            })
        })
    })
    orderRouter.get('/getAllOrder',(req,res) =>{//查询所有订单
        const { pageSize, offset } = req.query;
        order.findAndCountAll({
            limit:pageSize,
            offset:offset,
            include:[
                {
                    model:customer,
                    foreignKey:'customerIdCard',
                    attributes:['customerName','customerSex','customerVipLevel','customerPhoneNumber','totalAmount']
                },
                {
                    model:room,
                    foreignKey:'roomNumber',
                    attributes:['type','remarks']
                }
            ]
        })
        .then(data =>{
            res.status(200).json({
                success:true,
                msg:'所有订单查询成功!',
                orderList:data.rows.map(item =>{
                    return item.get()
                }),
                count:data.count
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器内部错误!'
            })
        })
    })
    orderRouter.get('/getAllNotPayOrder',(req,res) =>{//查询所有未支付的订单
        const { pageSize, offset } = req.query;
        order.findAndCountAll({
            limit:pageSize,
            offset:offset,
            where:{
                orderStatus:{
                    [Op.eq]:'未支付'
                }
            },
            include:[
                {
                    model:customer,
                    foreignKey:'customerIdCard',
                    attributes:['customerName','customerSex','customerVipLevel','customerPhoneNumber','totalAmount']
                },
                {
                    model:room,
                    foreignKey:'roomNumber',
                    attributes:['type']
                }
            ]
        })
        .then(data  =>{
            res.status(200).json({
                success:true,
                msg:'未支付订单查询成功!',
                orderList:data.rows.map(item =>{
                    return item.get()
                }),
                count:data.count,
                pageSize:pageSize,
                offset:offset
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器内部错误!'
            })
        })
    })
    orderRouter.get('/getAllPayOrder',(req,res) =>{//查询所有已支付的订单
        const { pageSize, offset } = req.query;
        order.findAndCountAll({
            limit:pageSize,
            offset:offset,
            where:{
                orderStatus:{
                    [Op.eq]:'已支付'
                }
            },
            include:[
                {
                    model:customer,
                    foreignKey:'customerIdCard',
                    attributes:['customerName','customerSex','customerVipLevel','customerPhoneNumber','totalAmount']
                },
                {
                    model:room,
                    foreignKey:'roomNumber',
                    attributes:['type']
                }
            ]
        })
        .then(data  =>{
            res.status(200).json({
                success:true,
                msg:'未支付订单查询成功!',
                orderList:data.rows.map(item =>{
                    return item.get()
                }),
                count:data.count,
                pageSize:pageSize,
                offset:offset
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器内部错误!'
            })
        })
    })
    orderRouter.get('/getStatusOrder',(req,res) =>{//查询所有该状态的订单
        const { pageSize, offset, orderStatus } = req.query;
        order.findAndCountAll({
            limit:pageSize,
            offset:offset,
            where:{
                orderStatus:{
                    [Op.eq]:orderStatus
                }
            },
            include:[
                {
                    model:customer,
                    foreignKey:'customerIdCard',
                    attributes:['customerName','customerSex','customerVipLevel','customerPhoneNumber','totalAmount']
                },
                {
                    model:room,
                    foreignKey:'roomNumber',
                    attributes:['type']
                }
            ]
        })
        .then(data  =>{
            res.status(200).json({
                success:true,
                msg:'状态订单查询成功!',
                orderList:data.rows.map(item =>{
                    return item.get()
                }),
                count:data.count,
                pageSize:pageSize,
                offset:offset
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器内部错误!'
            })
        })
    })
    module.exports = orderRouter;

    image.gif

    const express = require('express')//express框架
    const { Op } = require('sequelize')//nodejs的sequelize模块
    const room = require('../crud/table/room.js')//引入放假信息表
    const roomType = require('../crud/table/roomType.js')//引入所有房间类型表
    room.hasOne(roomType,{ sourceKey:'type',foreignKey:'type'})//每个房间都有一个房间类型
    const roomRouter = express.Router()
    roomRouter.post('/add',(req,res) =>{//添加房间
        const { roomNumber, type, roomStatus, remarks } = req.body;
        room.findOne({
            where:{
                roomNumber
            }
        })
        .then(data =>{
            if(data){
                res.status(200).json({
                    success:false,
                    msg:'该房间已经存在!'
                })
                return new Promise(() =>{})
            }else{
                return room.create({
                    roomNumber, type, roomStatus, remarks
                })
            }
        })
        .then(data =>{
            return room.findOne({
                where:{
                    roomNumber
                },
                include:[{
                    model:roomType,
                    foreignKey:'type',
                    attributes:['price','url']
                }]
            })
        })
        .then(data =>{
            res.status(200).json({
                success:true,
                msg:'房间添加成功!',
                room:data.get()
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器内部错误!'
            })
        })
    })
    roomRouter.delete('/del',(req,res) =>{
        const { roomNumber } = req.body;
        room.findOne({
            where:{
                roomNumber
            }
        })
        .then(data =>{
            if(data){
                return room.destroy({
                    where:{
                        roomNumber
                    }
                })
            }else{
                res.status(200).json({
                    success:false,
                    msg:'房间删除失败!'
                })
                return new Promise(() =>{})
            }
        })
        .then(data =>{
            res.status(200).json({
                success:true,
                msg:'该房间删除成功!'
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器内部错误!'
            })
        })
    })
    roomRouter.put('/update',(req,res) =>{//修改房间信息
        const { roomNumber, type, roomStatus,remarks } = req.body;
        room.findOne({
            where:{
                roomNumber
            }
        })
        .then(data =>{
            if(data){
                return room.update({
                    type, roomStatus,remarks
                },{
                    where:{
                        roomNumber
                    }
                })
            }else{
                res.status(200).json({
                    success:false,
                    msg:'该房间不存在!'
                })
                return new Promise(() =>{})
            }
        })
        .then(data =>{
            return room.findOne({
                where:{
                    roomNumber
                }
            })
        })
        .then(data =>{
            res.status(200).json({
                success:true,
                msg:'房间信息修改成功!',
                room:data.get()
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器内部错误'
            })
        })
    })
    roomRouter.get('/getAllRoom',(req,res) =>{//获取所有房间信息
        const { pageSize, offset } = req.query;
        room.findAndCountAll({
            limit:pageSize,
            offset:offset
        })
        .then(data =>{
            let roomList = data.rows.map(item =>{
                return item.get()
            })
            res.status(200).json({
                success:true,
                msg:'房间信息查询成功!',
                roomList:roomList,
                count:data.count
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器内部错误!'
            })
        })
    })
    roomRouter.get('/getOneRoom',(req,res) =>{//获取某个房间号的房间信息
        const { roomNumber } = req.query;
        room.findOne({
            where:{
                roomNumber
            }
        })
        .then(data =>{
            if(data){
                res.status(200).json({
                    success:true,
                    msg:'房间查询成功!',
                    room:data.get()
                })
            }else{
                res.status(200).json({
                    success:false,
                    msg:'未查询到该房间信息'
                })
            }
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器内部错误!'
            })
        })
    })
    roomRouter.get('/getNotInRoom',(req,res) =>{//获取未入住房间信息
        const { pageSize, offset } = req.query;
        room.findAndCountAll({
            limit:pageSize,
            offset:offset,
            where:{
                roomStatus:{
                    [Op.eq]:'未入住'
                }
            }
        })
        .then(data =>{
            res.status(200).json({
                success:true,
                msg:'未入住房间查询成功!',
                roomList:data.rows.map(item =>{
                    return item.get()
                }),
                count:data.count
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器内部错误!'
            })
        })
    })
    roomRouter.get('/getInRoom',(req,res) =>{//查询已入住房间信息
        const { pageSize, offset } = req.query;
        room.findAndCountAll({
            limit:pageSize,
            offset:offset,
            where:{
                roomStatus:{
                    [Op.eq]:'已入住'
                }
            }
        })
        .then(data =>{
            res.status(200).json({
                success:true,
                msg:'已入住房间查询成功!',
                roomList:data.rows.map(item =>{
                    return item.get()
                }),
                count:data.count
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器内部错误!'
            })
        })
    })
    roomRouter.get('/getAllRoomPrice',(req,res) =>{//查询所有的房间以及价格
        const { pageSize, offset } = req.query;
        room.findAndCountAll({
            limit:pageSize,
            offset:offset,
            include:[{
                model:roomType,
                foreignKey:'type',
                attributes:['price','url']
            }]
        })
        .then(data =>{
            res.status(200).json({
                success:true,
                msg:'房间信息查询成功!',
                roomList:data.rows.map(item =>{
                    return item.get()
                }),
                count:data.count
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器内部错误!'
            })
        })
    })
    roomRouter.get('/getAllNotINRoomPrice',(req,res) =>{//获取所有未入住的房间信息
        const { pageSize, offset } = req.query;
        room.findAndCountAll({
            limit:pageSize,
            offset:offset,
            where:{
                roomStatus:{
                    [Op.eq]:'未入住'
                }
            },
            include:[{
                model:roomType,
                foreignKey:'type',
                attributes:['price','url']
            }]
        })
        .then(data =>{
           res.status(200).json({
               success:true,
               msg:'房间信息查询成功!',
               roomList:data.rows.map(item =>{
                   return item.get()
               }),
               count:data.count
           })
        })
    })
    roomRouter.get('/getAllINRoomPrice',(req,res) =>{//获取所有已入住的房间信息
        const { pageSize, offset } = req.query;
        room.findAndCountAll({
            limit:pageSize,
            offset:offset,
            where:{
                roomStatus:{
                    [Op.eq]:'已入住'
                }
            },
            include:[{
                model:roomType,
                foreignKey:'type',
                attributes:['price','url']
            }]
        })
        .then(data =>{
           res.status(200).json({
               success:true,
               msg:'房间信息查询成功!',
               roomList:data.rows.map(item =>{
                   return item.get()
               }),
               count:data.count
           })
        })
    })
    roomRouter.get('/getAllRoomTypePrice',(req,res) =>{
        const { pageSize, offset, type } = req.query;
        room.findAndCountAll({
            where:{
               type:{
                   [Op.eq]:type
               }
            },
            include:[{
                model:roomType,
                foreignKey:'type',
                attributes:['price','url']
            }]
        })
        .then(data =>{
            res.status(200).json({
                success:true,
                msg:'房型查询成功!',
                roomList:data.rows.map(item =>{
                    return item.get()
                }),
                count:data.count
            })
        })
        .catch(err =>{
            res.status(200).json({
                success:false,
                msg:'服务器出错!'
            })
        })
    })
    roomRouter.get('/getAllStatusRoom',(req,res) =>{//获取所有该状态的房间信息
        const { pageSize, offset, roomStatus } = req.query;
        room.findAndCountAll({
            limit:pageSize,
            offset:offset,
            where:{
                roomStatus:{
                    [Op.eq]:roomStatus
                }
            },
            include:[{
                model:roomType,
                foreignKey:'type',
                attributes:['price','url']
            }]
        })
        .then(data =>{
           res.status(200).json({
               success:true,
               msg:'房间信息查询成功!',
               roomList:data.rows.map(item =>{
                   return item.get()
               }),
               count:data.count
           })
        })
    })
    module.exports = roomRouter

    image.gif

    五,项目总结

    相关文章
    |
    22天前
    |
    JavaScript 容器
    乾坤qiankun框架搭建 主应用为vue3的项目。
    乾坤qiankun框架搭建 主应用为vue3的项目。
    127 2
    |
    13天前
    |
    数据采集 监控 JavaScript
    在 Vue 项目中使用预渲染技术
    【10月更文挑战第23天】在 Vue 项目中使用预渲染技术是提升 SEO 效果的有效途径之一。通过选择合适的预渲染工具,正确配置和运行预渲染操作,结合其他 SEO 策略,可以实现更好的搜索引擎优化效果。同时,需要不断地监控和优化预渲染效果,以适应不断变化的搜索引擎环境和用户需求。
    |
    5天前
    |
    JavaScript
    Vue基础知识总结 4:vue组件化开发
    Vue基础知识总结 4:vue组件化开发
    |
    6天前
    |
    前端开发 JavaScript 安全
    揭秘!前端大牛们如何高效解决跨域问题,提升开发效率!
    【10月更文挑战第30天】在Web开发中,跨域问题是一大挑战。本文介绍前端大牛们常用的跨域解决方案,包括JSONP、CORS、postMessage和Nginx/Node.js代理,对比它们的优缺点,帮助初学者提升开发效率。
    25 4
    |
    16天前
    |
    JavaScript
    如何在 Vue 项目中选择合适的模块格式
    【10月更文挑战第20天】选择合适的模块格式需要综合考虑多个因素,没有一种绝对正确的选择。需要根据项目的具体情况进行权衡和分析。在实际选择过程中,要保持灵活性,根据项目的发展和变化适时调整模块格式。
    19 7
    |
    12天前
    Vue3 项目的 setup 函数
    【10月更文挑战第23天】setup` 函数是 Vue3 中非常重要的一个概念,掌握它的使用方法对于开发高效、灵活的 Vue3 组件至关重要。通过不断的实践和探索,你将能够更好地利用 `setup` 函数来构建优秀的 Vue3 项目。
    |
    16天前
    |
    JavaScript 前端开发 编译器
    在 Vue 项目中使用 ES 模块格式的优点
    【10月更文挑战第20天】在 Vue 项目中使用 ES 模块格式具有众多优点,这些优点共同作用,使得项目能够更高效、更可靠地开发和运行。当然,在实际应用中,还需要根据项目的具体情况和需求进行合理的选择和配置。
    25 6
    |
    12天前
    |
    JavaScript 测试技术 UED
    解决 Vue 项目中 Tree shaking 无法去除某些模块
    【10月更文挑战第23天】解决 Vue 项目中 Tree shaking 无法去除某些模块的问题需要综合考虑多种因素,通过仔细分析、排查和优化,逐步提高 Tree shaking 的效果,为项目带来更好的性能和用户体验。同时,持续关注和学习相关技术的发展,不断探索新的解决方案,以适应不断变化的项目需求。
    |
    15天前
    |
    JavaScript 前端开发 测试技术
    组件化开发:创建可重用的Vue组件
    【10月更文挑战第21天】组件化开发:创建可重用的Vue组件
    23 1
    |
    17天前
    |
    监控 JavaScript 前端开发
    前端的混合之路Meteor篇(六):发布订阅示例代码及如何将Meteor的响应数据映射到vue3的reactive系统
    本文介绍了 Meteor 3.0 中的发布-订阅模型,详细讲解了如何在服务器端通过 `Meteor.publish` 发布数据,包括简单发布和自定义发布。客户端则通过 `Meteor.subscribe` 订阅数据,并使用 MiniMongo 实现实时数据同步。此外,还展示了如何在 Vue 3 中将 MiniMongo 的 `cursor` 转化为响应式数组,实现数据的自动更新。
    下一篇
    无影云桌面