写在前面
此接口服务的搭建采用的技术栈包括NodeJS、Express框架、MySQL及各种相关中间件等。这次完成的是较为基础的对MySQL数据库增删改查操作,有兴趣深入了解的读者可以详细阅读一下《Building APIs with Node.js》这本书。
技术栈
- NodeJS
- Express框架
- MySQL数据库
- 中间件
cors中间件
body-parser中间件
mysql中间件 - 等
开始接口服务的搭建工作。进入正题之前, 、、,重要的事情说三遍。
后台搭建
const express = require('express')
const app = express()
// CORS模块,处理web端跨域问题
const cors = require('cors')
app.use(cors())
//body-parser 解析表单
const bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended:false}))
app.use(bodyParser.json())
//使用mysql中间件连接MySQL数据库
const mysql = require('mysql')
const connection = mysql.createConnection({
host:'localhost', //数据库地址
user: 'root', //用户名
password: 'root', //密码
port : '3306', //端口
database: 'test', //库名
multipleStatements:true //允许执行多条语句
})
查询表数据
// 查询
app.get('/api/user',(req,res,next) => {
const sql ='SELECT * FROM user' //user为表名
connection.query(sql,(err,results) =>{
if(err){
return res.json({
code: 1,
message: '用户不存在',
affextedRows: 0
})
}
res.json ({
code : 200,
message: results,
affextedRows:results.affextedRows
})
})
})
条件查询表数据
// 条件查询
app.get('/api/body',(req,res) => {
const id = req.query.id
const sql = 'SELECT * FROM user where id=?'
connection.query(sql,id,(err,results) => {
if (err) {
return res.json({
code: 1,
message: '无此用户',
affextedRows: 0
})
}
res.json ({
code: 200,
message: results,
affextedRows:results.affextedRows
})
})
})
增加表数据
//增加
app.post('/api/adduser', (req,res) => {
const user = req.body
const addSql = 'INSERT INTO user SET ?'
connection.query(addSql,user,(err,results) => {
if (err) {
return res.json({
code: 1,
message: '添加失败',
affextedRows: 0
})
}
res.json ({
code: 200,
message: '添加成功',
affextedRows:results.affextedRows
})
})
})
更新表数据
/修改
app.post('/api/updateuser',(req,res) => {
const user = []
user[0] = req.body.userName
user[1] = req.body.passWord
user[2] = req.body.id
const updateSql = 'UPDATE user SET userName = ?,passWord = ? WHERE Id = ?'
connection.query(updateSql,user,(err,results) => {
if (err) {
return res.json({
code: 1,
message: '修改失败',
affextedRows: 0
})
}
res.json ({
code: 200,
message: '修改成功',
affextedRows:results.affextedRows
})
})
})
启动服务,监听3001服务端口
//启动服务,端口3001
app.listen(3001,() => {
console.log('服务启动成功:'+`http://localhost:3001/`)
})
本章源码下载:GitHub地址
如果觉得有所帮助,欢迎和 ^_^