请确认系统安装了node
新建一个文件夹(node-test)用来存放这个后端项目,在文件夹下建立文件(db.js,app.js)
db.js是后端访问数据的配置文件
app.js是node项目的启动文件
// 引入数据库模块
const mysql=require('mysql')
// 配置数据库连接(地址,账户,密码,所连接的数据库)
const db=mysql.createPool({
host:'localhost',
user:'root',
password:'123456',
database:'st'
})
// 暴露改模块
module.exports=db
使用自己的数据库进行数据存储(不要按照我的密码和用户来写!!!)
数据库表展示(st数据库下的一个student表)
// 引入服务器模块
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端口正在被使用中,即为成功
在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语句
编写简单的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语句来执行
结果如下图所示
查看数据库表
// 发送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的数据是否已经删除