前言:express是一個輕量級的node.js web應(yīng)用程序開發(fā)框架,為web和移動應(yīng)用程序提供一組強(qiáng)大的功能,可以幫助我們快速搭建基于nodejs的web應(yīng)用。通俗來說:express可以搭建服務(wù)器,接受前端發(fā)送過來的請求,并連接數(shù)據(jù)庫,通過一系列操作做出響應(yīng)發(fā)送到前端。
注意:搭建服務(wù)器是在項目根目錄下新建的server.js,而連接mysql時,是在項目根目錄下創(chuàng)建了一個db的文件夾,文件夾內(nèi)新建了index.js文件,之后該文件拋出,在server.js文件中引入,話不多說,直接上項目目錄結(jié)構(gòu):
一、搭建服務(wù)器:
//
// 使用express搭建web服務(wù)器的前提條件是電腦中已經(jīng)安裝nodejs
// 之后進(jìn)入到項目終端輸入:npm i express
// npm i mysql安裝所需要用到的包
//
//用express搭建服務(wù)器并連接數(shù)據(jù)庫的詳細(xì)步驟如下
//首先新建一個后綴名為.js的文件
//1、引入express包
const express=require('express');
//2、實例化express對象
const app= express();
//3、開啟端口進(jìn)行監(jiān)聽發(fā)送過來的請求:包含端口號,和一個回調(diào)函數(shù)用于告知服務(wù)器是否啟動成功
app.listen( 3000 , () => {
console.log("服務(wù)器已經(jīng)成功啟動,并在http://127.0.0.1:3000/上運行")
})
//4、接下來就是根據(jù)發(fā)送過來的路由請求進(jìn)行處理并相應(yīng)
app.get('/login',(req,res)=>{
res.send("ok")
})
? ? ? ? 到此為止,使用express搭建服務(wù)器成功,此時打開任意瀏覽器,輸入http://127.0.0.1:3000/login進(jìn)行訪問,即可得到服務(wù)器端返回的ok。
二、連接mysql??
//
//在連接數(shù)據(jù)庫之前需要進(jìn)入項目終端輸入:npm i mysql
//
//之后在項目目錄下新建文件夾db,db目錄下新建文件index.js
//
//然后將是引入mysql的詳細(xì)步驟
//
//
// 1、引入mysql
const mysql = require("mysql");
// 2、建立一個連接池
const db = mysql.createPool({
host: "127.0.0.1", // 數(shù)據(jù)庫的IP地址(本地的或者是云服務(wù)器的都可以)
user: "root",//用戶名
password: "654321",
database: "sqltest", //指定要操作哪個數(shù)據(jù)庫
});
// 檢測數(shù)據(jù)庫是否連接成功
// db.query("select 1", (err, results) => {
// if (err) return console.log(err);
// console.log(results);
// });
//如果能打印出[ RowDataPacket { '1': 1 } ]代表連接數(shù)據(jù)庫成功
// 將文件暴露出去
module.exports = db
三、增、刪、改、查
????????搭建服務(wù)器成功并且連接mysql成功之后嘗試進(jìn)行操作數(shù)據(jù)庫里的數(shù)據(jù),進(jìn)行增刪改查。
操作之前的準(zhǔn)備:在數(shù)據(jù)庫中新建一個表,并添加幾條數(shù)據(jù),表名為test,上圖:
1、設(shè)計表:
2、添加幾條數(shù)據(jù):?
查
//
// 使用express搭建web服務(wù)器的前提條件是電腦中已經(jīng)安裝nodejs
// 之后進(jìn)入到項目終端輸入:npm i express
// npm i mysql安裝所需要用到的包
//
//用express搭建服務(wù)器并連接數(shù)據(jù)庫的詳細(xì)步驟如下
//首先新建一個后綴名為.js的文件
//1、引入express包,拋出的db/index.js包
const express=require('express');
const db=require('./db/index.js')
//2、實例化express對象
const app= express();
//3、開啟端口進(jìn)行監(jiān)聽發(fā)送過來的請求:包含端口號,和一個回調(diào)函數(shù)用于告知服務(wù)器是否啟動成功
app.listen( 3000 , () => {
console.log("服務(wù)器已經(jīng)成功啟動,并在http://127.0.0.1:3000/上運行")
})
//4、接下來就是根據(jù)發(fā)送過來的路由請求進(jìn)行處理并相應(yīng)
app.get('/login',(req,res)=>{
res.send("ok")
})
//5、查——————————————————————————————————————————————————————————————————————————————————
app.get("/infor", (req, res) => {
// 定義sql語句:意思為查詢test表
const sql = "select * from test";
// 執(zhí)行sql語句
db.query(sql, (err, result) => {
// 執(zhí)行失敗
if (err) {
return res.send({ state: 1, message: err });
}
//執(zhí)行成功后返回,表中的數(shù)據(jù)
return res.send({ state: 0, message: "查詢成功", data: result });
});
});
????????此時打開瀏覽器訪問:http://127.0.0.1:3000/infor就會返回test表中所有的數(shù)據(jù),在這個過程中,需要操作數(shù)據(jù)庫數(shù)據(jù),而操作數(shù)據(jù)庫的基本步驟為:
? ? ? ? 1、定義sql語句,
? ? ? ? 2、使用db.query()方法執(zhí)行sql語句,第一個參數(shù)放sql語句,緊接著是一個箭頭函數(shù),其中,第一個參數(shù)是執(zhí)行失敗的信息,第二個參數(shù)是執(zhí)行成功時所返回的結(jié)果。如果err存在,則執(zhí)行失敗,否則,執(zhí)行成功。
增
? "insert into login_table (username,password) values(?,?);"
//
// 使用express搭建web服務(wù)器的前提條件是電腦中已經(jīng)安裝nodejs
// 之后進(jìn)入到項目終端輸入:npm i express
// npm i mysql安裝所需要用到的包
//
//用express搭建服務(wù)器并連接數(shù)據(jù)庫的詳細(xì)步驟如下
//首先新建一個后綴名為.js的文件
//1、引入express包,拋出的db/index.js包
const express=require('express');
const db=require('./db/index.js')
//2、實例化express對象
const app= express();
//3、開啟端口進(jìn)行監(jiān)聽發(fā)送過來的請求:包含端口號,和一個回調(diào)函數(shù)用于告知服務(wù)器是否啟動成功
app.listen( 3000 , () => {
console.log("服務(wù)器已經(jīng)成功啟動,并在http://127.0.0.1:3000/上運行")
})
//4、接下來就是根據(jù)發(fā)送過來的路由請求進(jìn)行處理并相應(yīng)
app.get('/login',(req,res)=>{
res.send("ok")
})
//5、增
app.get("/increase", (req,res)=>{
// 先取到要增加的字段值
const addInfor = req.query
// 定義sql語句
const sql = "insert into test set ?"
// 執(zhí)行sql語句,第二個參數(shù)代表sql語句中?的值
/**
* 如果增加的字段和數(shù)據(jù)庫中的字段不是一一對應(yīng)的
* 將addInfor換成{name: addInfor.name, age: addInfor.age}
* name代表數(shù)據(jù)庫中的字段,addInfor.name代表他要增加的值
*/
db.query(sql, addInfor, (err,results)=>{
// sql語句執(zhí)行失敗
if(err) {
return res.send({status: 1, message: err.message})
}
// 數(shù)據(jù)庫語句執(zhí)行成功,但影響的條數(shù)不等于1,沒有增加,也屬于失敗
if(results.affectedRows !== 1) {
return res.send({status: 1, message: '數(shù)據(jù)添加失敗'})
}
// sql語句執(zhí)行成功,影響條數(shù)也等于1
return res.send({status:0, message: '添加成功', data:results})
})
})
? ? ? ? ?此時,如果打開任意瀏覽器訪問網(wǎng)址:http://127.0.0.1:3000//increase?username=201811040682&password=123456即可成功將一條數(shù)據(jù)插入數(shù)據(jù)庫:
而前端瀏覽器中會返回成功信息:
改
`UPDATE login_table SET username='${username}', password=${password} WHERE username='${findUsername}'`文章來源:http://www.zghlxwxcb.cn/news/detail-800725.html
刪
`DELETE FROM login_table WHERE username='${username}'`文章來源地址http://www.zghlxwxcb.cn/news/detail-800725.html
到了這里,關(guān)于express搭建服務(wù)器并連接mysql數(shù)據(jù)庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!