Node.js使用Express框架写后端增删改查接口

mkdir app01
 cd app01
npx express-generator
 npm i
 npm i mysql -S
 npm i cors -S
 cnpm i -S nodemon
npm run start

1 在app01下创建utils文件夹并创建pool.js文件和Response.js

37f0ad5cc0974279b8c6bfb2ad9f01ca.png

Response.js的代码:

// 封装响应数据
class Response{
    constructor(status,data,message){
        this.status=status;
        this.data=data;
        this.message=message;
        this.timesamp=new Date().getTime()
    }
}
// 导出响应数据
module.exports=Response

pool.js的代码:

// 1.引入mysql模块
let mysql=require('mysql')

// 2.创建连接池对象
let pool=mysql.createPool({
    host:'xx.xxx.xxx.xx', // 这里填入你的服务器地址就好了  
    database:'xxx', // 数据库名
    user:'test1',           //用户名
    password:'test1',      //密码
    connectionLimit:10
});

// 3.将连接池导出
module.exports=pool;

2在routers文件夹下创建student.js文件

53ab2eee031849859e44c72e9cc88573.png

查询接口:

//3 编写学生接口

// 3.1引入express
let express=require('express');
// 3.1引入响应体
let Response=require('../utils/Response');
// 3.1引入连接池对象
let pool =require('../utils/pool');
const { query } = require('express');


// 3.2 创建路由单元
let router=express.Router();



//3.3 查询接口 
router.get('/findAll',(req,res)=>{
    pool.getConnection((err,connection)=>{
        if(err) throw err;
        let sql='select * from tbl_student';
        connection.query(sql,(err,results)=>{
            if(err) throw err;
            res.json(new Response(200,results,'查询成功'))
        });
        // 释放连接对象
        connection.release();
        
    })
});




//3.4 导出
module.exports=router

删除接口

// 3.1引入express
let express=require('express');
// 3.1引入响应体
let Response=require('../utils/Response');
// 3.1引入连接池对象
let pool =require('../utils/pool');
const { query } = require('express');


// 3.2 创建路由单元
let router=express.Router();




// 3.3 删除接口 
router.delete('/deleteById',(req,res)=>{
    // query是一个对象可以将id解构出来
    // let id=req.query.id等价于一下代码
    let {id}=req.query;
    pool.getConnection((err,connection)=>{
        if(err) throw err; 
        // 根据id删除数据
        let sql=`delete from tbl_student where id=${id}`;
        connection.query(sql,(err,results)=>{
            if(err) throw err;
            res.json(new Response(200,null,'删除成功'))
        });
        connection.release()
    })

});






//3.4 导出
module.exports=router

 新增或修改接口

//3 编写学生接口

// 3.1引入express
let express=require('express');
// 3.1引入响应体
let Response=require('../utils/Response');
// 3.1引入连接池对象
let pool =require('../utils/pool');
const { query } = require('express');


// 3.2 创建路由单元
let router=express.Router();




// 3.3 新增或修改接口
router.post('/saveOrUpdata',(req,res)=>{
    // 根据数据库的数据 将id name gender 解构出来
    let {id,name,gender}=req.body;
    pool.getConnection((err,connection)=>{
        if(err) throw err;
        let sql='';
        // 需要判断id判断 id存在则为修改接口  id不存在则为新增接口
        if(id){
            // 修改
            sql=`updata tbl_student set name='${name}'gender='${gender}' where id =${id}`;
        }else{
            // 新增
            sql=`insert into tbl_student values(null,'${name}','${gender}') `;
        }
            // 执行sql操作
            connection.query(sql,(err,results)=>{
                if(err) throw err;
                res.json(new Response(200,null,id?'修改成功':'新增成功'))
            })
    })
})






//3.4 导出
module.exports=router

 4只需要在 app.js写两行代码

4.1引入学生路由和4.2使用学生路由 即可


var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
//4.1 引入学生路由单元
let studentRouter=require('./routes/student')

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/users', usersRouter);
// 4.2使用学生路由
app.use('/student',studentRouter)

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

测试一下:

在浏览器地址栏上输入localhost:3000/student/findAll

查询结果:

c4848bac13764dde91f038deee022578.png

使用postman模拟前端删除请求

9635a9e290ed4207ad6f076d305b6699.png

 此时在查询全部数据id为5的 数据已经删除了06a35c0a1aaa4150bd50eede9f0db9b0.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值