前后台交互实现图书管理

本文档详细介绍了如何实现图书管理系统的前后端交互,包括项目搭建、数据库操作、路由分配、业务逻辑处理以及前台页面的设计。主要内容涉及加载首页面、添加、删除、修改和查询图书的操作流程,以及前后端通过ajax进行数据交换的实现方式。
摘要由CSDN通过智能技术生成

业务逻辑分析
加载首页面
后台:分配首页面路由(books),在server中使用数据库查询语句并将所有数据返回成json数据(res.json())
前台:调用ajax方法,type\url与后台对应,向后台发送数据,后台接收到数据后,返回 将所有数据渲染在tbody中
添加图书
后台:获取要添加的数据,连接数据库执行数据库添加语句,将数据添加到数据库中
前台:添加点击事件,点击添加图书是 弹出表单,给提交按钮添加点击事件,调用ajax接口 获取表单所有的数据,判断,成功则渲染到页面
删除图书
后台:获取要删除图书的id 在连接数据库执行删除语句,根据状态码进行判断
前端:给说有的a添加点击事件(遍历每一行数据 获取到a标签所在的列,在根据索引获取到删除并添加点击事件,并获取所删除图书的id),使用ajax将所需要删除图书的id传递到后台,然后判断状态码
修改图书
后台:1.分配跳转(进入)到修改页面的路由地址,实现跳转,用数据库查询语句,根据id获取到需要修改的图书,写入到表单中;
2.分配离开路由地址,根据数据库修改语句,修改图书进行判断
前台:根据索引获取到修改a标签,添加点击事件获取表单,调用接口,将数据填充到表单中,在调用接口 将修改的图书数据返回到后台
查询图书
后端:获取图书书名,定义一个空数组,在使用sql 查询语句,遍历所有数据 获取到匹配的数据放入空数组中
前端:给查询按钮添加点击事件,获取到所要查找的图书名,调用ajax接口,将数据渲染在页面中

一、项目搭建

1.模块引入

//引入
const template=require('art-template');
const express=require('express');
const app = express()
const bobyParser=require('body-parser');
const path =require('path');
const router =require('./router/router')

2.创建文件

  • 创建入口文件 index.js
  • 创建封装操作数据库的api db.js
  • 创建静态文件 public
  • 路由分配 route
  • 业务逻辑处理 server

二、写入入口文件index.js

//引入
const template=require('art-template');
const express=require('express');
const app = express()
const bobyParser=require('body-parser');
const path =require('path');
const router =require('./router/router')

//静态文件托管
app.use(express.static('public'))

//设置模板兼容
app.engine('art',require('express-art-template'))

//设置模板引擎路径
app.set('views',path.join(__dirname,'views'))

//设置模板引擎
app.set('view engine','art');

//挂载参数处理的中间件
app.use(bobyParser.urlencoded({
   extended:false}));

//处理json数据
app.use(bobyParser.json());

//配置路由
app.use(router)

//监听端口
app.listen(3000,()=>{
   
    console.log('...........')
})

三、封装数据库db.js

const mysql=require('mysql')

//接口
exports.base=(sql,data,callback)=>{
   
    //创建连接
    const connection=mysql.createConnection({
   
        host:'localhost',
        user:'root',
        password:'123456',
        database:'books'
    })
    //执行连接操作
    connection.connect()

    //操作数据库
    connection.query(sql,data,(error,results,fileds)=>{
   
        if(error) throw error;
        callback(results)
    })
}

三、路由分配 router.js

//分配路由
const express=require('express')
const router=express.Router()
const service = require('../server/server')

//查询所有书籍
router.get('/books',service.showInfo);

//添加图书 跳转路由
router.get('/tAddBook',service.tz)

//添加图书
router.post('/books/tj',service.tj)

//修改图书
router.get('/books/book/:id',service.xgtz)

//修改
router.put('/books/xg',service.xg)

//删除
router.get('/books/sc/:id',service.sc)

//查询
 router.post('/books/cx',service
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值