中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Node.js+Express+Mysql如何實現增刪改查

發布時間:2021-05-21 10:24:51 來源:億速云 閱讀:213 作者:小新 欄目:web開發

這篇文章主要介紹了Node.js+Express+Mysql如何實現增刪改查,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

安裝

node 直接去官網下載選擇下載即可https://nodejs.org/en/download/current/

cnpm install express //express框架安裝
cnpm install mysql //mysql驅動安裝
 brew install mysql //數據庫的安裝,根據命令行提示初始化配置
 mysql.server start//啟動mysql服務
 mysql.server stop//停止mysql服務
 mysql -u用戶名 -p用戶密碼//登錄mysql

nodejs連接數據庫時報錯

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support
authentication protocol requested by server; consider upgrading MySQL client

查到的結論是: MySQL8.0版本的加密方式和MySQL5.0的不一樣,連接會報錯。

解決方法如下: 通過命令行進入解壓的mysql根目錄下。

登陸數據庫

mysql -uroot -p

輸入root的密碼

Enter password: ******

更改加密方式

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

更改密碼:該例子中 123456為新密碼

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

刷新:

mysql> FLUSH PRIVILEGES;

數據庫的連接

var mysql = require('mysql');//引入數據庫驅動模塊
//console.log(mysql)
// 連接數據庫的配置
var connection = mysql.createConnection({
 // 主機名稱,一般是本機
 host: 'localhost',
 // 數據庫的端口號,如果不設置,默認是3306
 port: '3306',
 // 創建數據庫時設置用戶名
 user: 'root',
 // 創建數據庫時設置的密碼
 password: '*******',
 // 創建的數據庫
 database: 'express'
});
// 與數據庫建立連接
connection.connect();
// 查詢數據庫
connection.query('select * from userinfo', function (error, results, fields) {
 if (error) throw error;
 console.log(results);
});

// 關閉連接
connection.end();

新建一張表格在數據庫中為:

Node.js+Express+Mysql如何實現增刪改查

express服務端

Express 是一個基于 Node.js 平臺的極簡、靈活的 web 應用開發框架,這里沒有搭建express框架的項目,只是簡單搭建一個服務端,實現和數據庫的增刪改查。

var express = require("express");
var app = express();
var query = require('./db')
//var router =require('router')
var mysql = require('mysql');
var querystring = require("querystring");
//console.log(mysql)
// 連接數據庫的配置
var connection = mysql.createConnection({
 // 主機名稱,一般是本機
 host: 'localhost',
 // 數據庫的端口號,如果不設置,默認是3306
 port: '3306',
 // 創建數據庫時設置用戶名
 user: 'root',
 // 創建數據庫時設置的密碼
 password: '1234567',
 // 創建的數據庫
 database: 'express'
});
// 與數據庫建立連接
connection.connect();
//根據參數,查詢數據
app.get('/index', function (req, res) {
 // 處理 get 請求,獲取 get 請求參數
 //處理 /:xxx 形式的 get 或 post 請求,獲取請求參數 這里沒有使用到
 var params = req.query
 //查詢語句
 var sql = 'select * from userinfo where name= ? and age=?'
 var where_value = [params.name, params.age];
 // console.log(sql)
 connection.query(sql, where_value, function (err, result) {
 if (err) {
  console.log('[SELECT ERROR]:', err.message);
 }
 res.send(result) //數據庫查詢結果返回到result中,把查詢數據發送到客戶端
 });

})
//增加數據
app.post('/add', function (req, res) {
 //獲取及處理增加的數據
 var post = '';
 req.on('data', function (chunk) {
 post += chunk;
 console.log(post)
 });
 req.on('end', function () {
 //查詢參數解析
 post = querystring.parse(post);
 var sql = 'insert into userinfo set id=? , name=? , age=?, address=?'
 var add_value = [post.id, post.name, post.age, post.address]
 connection.query(sql, add_value, function (err, result) {
  if (err) {
  console.log('新增數據失敗');
  }
  res.send('增加數據成功') // 響應內容 增加數據成功
 });
 });
})
//修改數據
app.put('/update', function (req, res) {
 //處理請求修改的數據和條件
 var update = '';
 req.on('data', function (chunk) {
 update += chunk;
 console.log(update)
 });
 req.on('end', function () {
 //查詢參數解析
 update = querystring.parse(update);
 var sql = 'update userinfo set name=? , age=?, address=? where id=?'
 var update_value = [update.name, update.age, update.address,update.id]
 connection.query(sql, update_value, function (err, result) {
  if (err) {
  console.log('修改數據失敗', err.message);
  }
  res.send('修改數據成功') // 響應內容 修改數據成功
 });
 });
})
//刪除數據
app.delete('/delete', function (req, res) {
 var params = req.query
 var sql = 'delete from userinfo where name= ?'
 var where_value = [params.name];
 // console.log(sql)
 connection.query(sql, where_value, function (err, result) {
 if (err) {
  console.log('刪除失敗', err.message);
 }
 res.send('刪除成功')
 });
})
//關閉連接 
//connection.end();
//監聽8080端口
var server = app.listen(8080, function () {
 console.log('server running at 3000 port')
})

http客戶端

這里把node http模塊來搭建客戶端,發起請求。

get請求

const http = require("http");
// 發送請求的配置
let config = {
 host: "localhost",
 port: 8080,
 //get請求參數
 path:'/index?name=bill&age=21',
 method: "GET",
 headers: {
 a: 1
 }
};
// 創建客戶端
let client = http.request(config, function(res) {
 // 接收服務端返回的數據
 let repData='';
 res.on("data", function(data) {
 repData=data.toString()
 console.log(repData)
 });
 res.on("end", function() {
 // console.log(Buffer.concat(arr).toString());
 });
});
// 發送請求
client.end();

客戶端發起參數name=bill&age=21的查詢請求,服務端根據條件操作數據庫,響應數據為:

Node.js+Express+Mysql如何實現增刪改查

post請求

var http = require('http');
var querystring = require("querystring");
//查詢參數拼接
//增加的數據
var contents = querystring.stringify({
 id:5,
 age:'23',
 name: "艾利斯提",
 address: "dongbei",
});
var options = {
 host: "localhost",
 port: 8080,
 path:"/add",
 method: "POST",
 headers: {
 "Content-Type": "application/x-www-form-urlencoded",
 "Content-Length": contents.length
 }
};
var req = http.request(options, function (res) {
 res.setEncoding("utf8");
 res.on("data", function (data) {
 console.log(data);
 })
})
//發送數據
req.write(contents);
req.end(); //結束請求,否則服務器將不會收到信息

post請求發送增加數據,服務端根據請求,向數據庫追加一條數據,響應客戶端:增加數據成功。增加后的數據表:

Node.js+Express+Mysql如何實現增刪改查

put請求

const http = require("http");
var querystring = require("querystring");
//查詢參數拼接
// 發送請求的配置
var contents = querystring.stringify({
 id:1,
 age:'25',
 name: "Sarah",
 address: "qingdao",
});
let config = {
 host: "localhost",
 port: 8080,
 path:'/update',
 method: "PUT",
 headers: {
 a: 1
 }
};
// 創建客戶端
let client = http.request(config, function(res) {
 // 接收服務端返回的數據
 let repData='';
 res.on("data", function(data) {
 repData=data.toString()
 console.log(repData)
 });
 
});
 client.write(contents);
// 發送請求
client.end();

這里請求和post方法類似,服務端根據sql語句('update userinfo set name=? , age=?, address=? where id=?')修改數據庫的內容,響應客戶端:修改數據成功。修改后的數據表:

Node.js+Express+Mysql如何實現增刪改查

delete請求

const http = require("http");
// 發送請求的配置
let config = {
 host: "localhost",
 port: 8080,
 //刪除數據的參數
 path:'/delete?name=bill',
 method: "DELETE",
 headers: {
 a: 1
 }
};
// 創建客戶端
let client = http.request(config, function(res) {
 // 接收服務端返回的數據
 let repData='';
 res.on("data", function(data) {
 repData=data.toString()
 console.log(repData)
 });
 res.on("end", function() {
 // console.log(Buffer.concat(arr).toString());
 });
});
// 發送請求
client.end();

客戶端發送刪除數據的參數,客戶端拿到參數,根據條件,操作數據庫刪除相應數據,響應客戶端:刪除成功。刪除后的數據表:

Node.js+Express+Mysql如何實現增刪改查

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Node.js+Express+Mysql如何實現增刪改查”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鹰潭市| 无为县| 定边县| 泸西县| 黄浦区| 孙吴县| 米泉市| 上思县| 开封县| 邢台县| 疏勒县| 石首市| 乌海市| 湘阴县| 饶河县| 喜德县| 家居| 贵溪市| 得荣县| 大庆市| 清新县| 大化| 太和县| 武宣县| 大英县| 镇沅| 寿光市| 简阳市| 财经| 麦盖提县| 台安县| 长海县| 西青区| 香港| 凌海市| 江源县| 涿鹿县| 伽师县| 得荣县| 明光市| 玛纳斯县|