使用Express+Node.js對(duì)mysql進(jìn)行增改查操作?
前言:
今天發(fā)的是Express對(duì)mysql進(jìn)行增刪改操作的所有代碼,這個(gè)代碼還沒(méi)有完善好,都是一些基礎(chǔ)的增刪改查操作,有一些地方也寫上了注釋方便大家查看,還有更方便管理的方法,后續(xù)再給大家更新把。
最近要是有時(shí)間就會(huì)把文章寫出來(lái)給大家,希望想要學(xué)習(xí)的朋友都能學(xué)習(xí)順利。
server.js文件夾完整的代碼示例:
// 引入 express 框架
const express = require('express')
const mysql = require("mysql");
const bodyParser = require('body-parser');
// 創(chuàng)建實(shí)例
const app = express();
// 解析 application/json
app.use(bodyParser.json());
// // 解析 application/x-www-form-urlencoded
// app.use(bodyParser.urlencoded());
app.all('*', function(req, res, next) {
res.header('Access-Control-Allow-Origin',
'*'); //*表示可以跨域任何域名都行(包括直接存在本地的html文件)出于安全考慮最好只設(shè)置 你信任的來(lái)源也可以填域名表示只接受某個(gè)域名
res.header('Access-Control-Allow-Headers', 'X-Requested-With,Content-Type'); //可以支持的消息首部列表
res.header('Access-Control-Allow-Methods', 'PUT,POST,GET,DELETE,OPTIONS'); //可以支持的提交方式
res.header('Content-Type', 'application/json;charset=utf-8'); //響應(yīng)頭中定義的類型
next();
});
const connection = mysql.createConnection({ //建立一個(gè)連接參數(shù)方法
host: 'localhost', //數(shù)據(jù)庫(kù)地址
port: '3306', //端口號(hào)
user: 'root', //用戶名
password: 'root', //密碼
database: 'test' //數(shù)據(jù)庫(kù)名稱
});
//用參數(shù)與數(shù)據(jù)庫(kù)進(jìn)行連接
// connection.connect();
let str = '';
connection.connect(); //打開連接
// connection.end()//關(guān)閉連接 如果關(guān)閉連接第二次請(qǐng)求數(shù)據(jù)庫(kù)連接會(huì)失敗
const getBanner = (table) => { //查詢數(shù)據(jù)
return new Promise(function(resolve, reject) {
let sql = `SELECT * FROM ${table}`;
try {
connection.query(sql, (err, data) => {
if (err) {
reject(err)
} else {
resolve(data)
}
})
} catch (e) {
console.log(e);
}
})
}
const addBanner = (list) => { //增加數(shù)據(jù)
// console.log(Object.values(list));
list = Object.values(list) //將對(duì)象轉(zhuǎn)成數(shù)組
return new Promise(function(resolve, reject) {
// const sql = 'UPDATE `user` SET ? WHERE id = ?'
// //若sql語(yǔ)句中包含多個(gè)?占位符,第二個(gè)實(shí)參必須傳遞一個(gè)數(shù)組,并一一對(duì)應(yīng)
// conn.query(sql,[user,user.id],(err,result) => {}
let addSql = `INSERT INTO banner(name,url) VALUES (?,?)`;
try {
connection.query(addSql, list, (err, result) => {
if (err) {
reject(err)
} else {
result = {
code: 200,
msg: '增加成功'
};
resolve(result)
}
})
} catch (e) {
console.log(e);
}
})
}
const deleteBanner = (list) => { //刪除數(shù)據(jù)
return new Promise(function(resolve, reject) {
let deleteSql = `delete from banner where name='${list.name}'`;
try {
connection.query(deleteSql, (err, result) => {
if (err) {
reject(err)
} else {
result = {
code: 200,
msg: '刪除成功'
};
// console.log(result);
resolve(result)
}
})
} catch (e) {
console.log(e);
}
})
}
const updateBanner = (list) => { //修改數(shù)據(jù)
return new Promise(function(resolve, reject) {
let updateSql = `update banner set ? where id=${list.id}`;
try {
connection.query(updateSql,list.data, (err, result) => {
if (err) {
reject(err)
} else {
result = {
code: 200,
msg: '修改成功'
};
// console.log(result);
resolve(result)
}
})
} catch (e) {
console.log(e);
}
})
}
//2.發(fā)送請(qǐng)求(查詢)
// var insert = `INSERT INTO table_name (name,url )VALUES(${name},${url});`
app.get('/', (req, res) => {
res.send('express啟動(dòng)成功端口號(hào)3011');
})
app.post('/addbanner', (req, res) => { //增加
addBanner(req.body).then(re => {
console.log(re);
res.send(re)
})
})
app.post('/deletebanner', (req, res) => { //刪除
deleteBanner(req.body).then(re => {
// console.log(re);
res.send(re)
})
})
app.post('/updatebanner', (req, res) => { //修改
updateBanner(req.body).then(re => {
console.log(re);
res.send(re)
})
})
app.post('/select', (req, res) => { //查詢某表數(shù)據(jù)
getBanner(req.body.table).then(re => {
res.send(re);
})
})
// 監(jiān)聽端口
app.listen(3011, () => {
console.log("服務(wù)已經(jīng)啟動(dòng),3011 端口監(jiān)聽中...");
})到此這篇關(guān)于使用Express+Node.js對(duì)mysql進(jìn)行增改查操作 的文章就介紹到這了,更多相關(guān)mysql增改查 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- node.js中koa和express的差異對(duì)比
- Node.js中Express框架使用axios同步請(qǐng)求(async+await)實(shí)現(xiàn)方法
- node.js使用express-jwt報(bào)錯(cuò):expressJWT?is?not?a?function解決
- Node.js使用express寫接口的具體代碼
- Node.js?express中的身份認(rèn)證的實(shí)現(xiàn)
- node.js三個(gè)步驟實(shí)現(xiàn)一個(gè)服務(wù)器及Express包使用
- Node.js中Express框架的使用教程詳解
- node.js+express留言板功能實(shí)現(xiàn)示例
- node.js使用express-fileupload中間件實(shí)現(xiàn)文件上傳
- Node.js+express+socket實(shí)現(xiàn)在線實(shí)時(shí)多人聊天室
- Express框架實(shí)現(xiàn)簡(jiǎn)單攔截器功能示例
相關(guān)文章
Nest.js Controller路由和請(qǐng)求處理強(qiáng)大功能解析
這篇文章主要為大家,介紹了Nest.js Controller路由和請(qǐng)求處理強(qiáng)大功能解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
node.js中的fs.createWriteStream方法使用說(shuō)明
這篇文章主要介紹了node.js中的fs.createWriteStream方法使用說(shuō)明,本文介紹了fs.createWriteStream方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
在Node.js中實(shí)現(xiàn)視頻列表的分頁(yè)展示功能
在Web應(yīng)用開發(fā)中,展示大量數(shù)據(jù)時(shí)經(jīng)常會(huì)用到分頁(yè)功能,以提升用戶體驗(yàn)和頁(yè)面加載性能,本篇博客將介紹如何在使用Node.js和MongoDB的項(xiàng)目中實(shí)現(xiàn)視頻列表的分頁(yè)展示,文中有相關(guān)的代碼示例,需要的朋友可以參考下2024-04-04
Node.js 實(shí)現(xiàn)簡(jiǎn)單的接口服務(wù)器的實(shí)例代碼
這篇文章主要介紹了Node.js 實(shí)現(xiàn)簡(jiǎn)單的接口服務(wù)器的實(shí)例代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-05-05
Node.js中的EventEmitter類使用小結(jié)
EventEmitter 是 Node.js 中的一個(gè)核心模塊,它提供了一種實(shí)現(xiàn)事件驅(qū)動(dòng)編程的機(jī)制,它是一個(gè)基于觀察者模式的類,用于在應(yīng)用程序中處理事件和觸發(fā)事件,這篇文章主要介紹了Node.js中的EventEmitter類介紹,需要的朋友可以參考下2023-12-12
Express下采用bcryptjs進(jìn)行密碼加密的方法
本篇文章主要介紹了Express下采用bcryptjs進(jìn)行密碼加密的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
Node.js靜態(tài)服務(wù)器的實(shí)現(xiàn)方法
這篇文章主要介紹了Node.js靜態(tài)服務(wù)器的實(shí)現(xiàn)方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-02-02
vscode調(diào)試node.js的實(shí)現(xiàn)方法
這篇文章主要介紹了vscode調(diào)試node.js的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03

