寫在前面
此接口服務(wù)的搭建采用的技術(shù)棧包括NodeJS、Express框架、MySQL及各種相關(guān)中間件等。這次完成的是較為基礎(chǔ)的對MySQL數(shù)據(jù)庫增刪改查操作,有興趣深入了解的讀者可以詳細(xì)閱讀一下《Building APIs with Node.js》這本書。
技術(shù)棧
- NodeJS
- Express框架
- MySQL數(shù)據(jù)庫
- 中間件
cors中間件
body-parser中間件
mysql中間件 - 等
開始接口服務(wù)的搭建工作。進(jìn)入正題之前,
、
、
,重要的事情說三遍。
后臺搭建
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數(shù)據(jù)庫
const mysql = require('mysql')
const connection = mysql.createConnection({
host:'localhost', //數(shù)據(jù)庫地址
user: 'root', //用戶名
password: 'root', //密碼
port : '3306', //端口
database: 'test', //庫名
multipleStatements:true //允許執(zhí)行多條語句
})
查詢表數(shù)據(jù)
// 查詢
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
})
})
})
條件查詢表數(shù)據(jù)
// 條件查詢
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
})
})
})
增加表數(shù)據(jù)
//增加
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
})
})
})
更新表數(shù)據(jù)
/修改
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
})
})
})
啟動服務(wù),監(jiān)聽3001服務(wù)端口
//啟動服務(wù),端口3001
app.listen(3001,() => {
console.log('服務(wù)啟動成功:'+`http://localhost:3001/`)
})
本章源碼下載:GitHub地址
如果覺得有所幫助,歡迎和
^_^