使用javascript写后端(nodejs)

1、准备工作

请确认系统安装了node

新建一个文件夹(node-test)用来存放这个后端项目,在文件夹下建立文件(db.js,app.js)

db.js是后端访问数据的配置文件

app.js是node项目的启动文件

2、编写数据库配置(db.js)

// 引入数据库模块
const mysql=require('mysql')
// 配置数据库连接(地址,账户,密码,所连接的数据库)
const db=mysql.createPool({
    host:'localhost',
    user:'root',
    password:'123456',
    database:'st'
})
// 暴露改模块
module.exports=db

使用自己的数据库进行数据存储(不要按照我的密码和用户来写!!!

数据库表展示(st数据库下的一个student表)

3、简易的服务器搭建

// 引入服务器模块
const express=require('express')
// 引入数据库模块
const db=require('./db')
// 定义一个app成为服务器
const app=express()
// 让app在8080端口运行
app.listen(8080,()=>{
    console.log('服务器在8080端口运行了')
})

在终端中运行app.js文件

node .\app.js

效果如下图所示

 进入浏览器查看8080端口,发现8080端口正在被使用中,即为成功

 4、发送get请求获取数据库数据

在const app=express()和app.listen()之间增加以下代码,实现发送get请求获取数据

// 发送get请求
app.get('/get',(req,res)=>{
    // 编写sql语句获取数据库数据
    let sql='select * from student'
    // 将sql给db下的query函数执行
    // 参数为(sql语句,函数(错误,结果))
    db.query(sql,(err,result)=>{
        // 如果sql语句有误
        if(err){
            // 服务器向客户端发送错误原因
            res.send(err)
        }
        // 获取数据成功,返回对象(成功的状态码,数据,获取成功的信息标识)
        res.send({code:200,data:result,message:'获取成功'})
    })
})

重新运行程序(node .\app.js),访问以下接口即可获取数据

http://localhost:8080/get

效果如下图所示

 成功获取数据库中的数据,其中app.get(),代表发送的是get请求app.get('/get'),表示进入/get这个路径去执行sql语句

 5、发送post请求增加数据(使用postman工具模拟post请求)

编写简单的post接口

// 发送post请求增加数据
app.post('/post',(req,res)=>{
    console.log(req.body)
})

请求地址 

http://localhost:8080/post

完整代码(增加了对json格式的解释,因为使用到了post请求,要拿到json数据)

// 引入服务器模块
const express=require('express')
// 引入数据库模块
const db=require('./db')
// 定义一个app成为服务器
const app=express()

//json解析器
const bodyParser = require('body-parser');//解析,用req.body获取post参数
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));


// 发送get请求
app.get('/get',(req,res)=>{
    // 编写sql语句获取数据库数据
    let sql='select * from student'
    // 将sql给db下的query函数执行
    // 参数为(sql语句,函数(错误,结果))
    db.query(sql,(err,result)=>{
        // 如果sql语句有误
        if(err){
            // 服务器向客户端发送错误原因
            res.send(err)
        }
        // 获取数据成功,返回对象(成功的状态码,数据,获取成功的信息标识)
        res.send({code:200,data:result,message:'获取成功'})
    })
})

// 发送post请求增加数据
app.post('/post',(req,res)=>{
    console.log(req.body)
})

// 让app在8080端口运行
app.listen(8080,()=>{
    console.log('服务器在8080端口运行了')
})

重新运行程序(node .\app.js),使用postman编写json数据,如下图所示

结果在终端中查看,服务器获取到了传入的数据,可以使用传入的数据增加数据库信息

 完整的post请求编写(需要参考数据库表传入数据,用来执行sql)

// 发送post请求增加数据
app.post('/post',(req,res)=>{
    console.log(req.body)
    // 解构出json的数据
    let {stucity,stuname,stusex}=req.body
    // 编写增加数据的sql语句
    let sql='insert into student(stucity,stuname,stusex) value(?,?,?)'
    // 执行sql语句(sql语句,参数(对应value中的?号),函数)
    db.query(sql,[stucity,stuname,stusex],(err,result)=>{
        if(err) res.send(err)
        res.send({code:200,message:'添加数据成功'})
    })
})

数据库表中的主键stunumber为自增类型,所以不用传参,将其他三个参数以数组的形式传递给sql语句来执行

结果如下图所示

 

查看数据库表

 

6、发送delete请求删除数据

// 发送delete请求
app.delete('/delete/:id',(req,res)=>{
    // sql语句根据stunumber删除学生数据
    let sql='delete from student where stunumber= ?'
    // 获取参数(stunumber)
    let {id}=req.params
    console.log(id)
    // 执行sql语句
    db.query(sql,id,(err,result)=>{
        if(err)
        res.send(err)
        // 删除数据成功
        res.send({code:200,message:'删除数据成功'})
    })
})

/delete/:id表示路径上需要有一个id参数,下面的参数为9

http://localhost:8080/delete/9

使用postman进行测试

 

 查看数据库表中id为9的数据是否已经删除

猜你喜欢

转载自blog.csdn.net/m0_57108418/article/details/128414111