~ Express 数据库集成

添加将数据库连接到 Express 应用程序的功能,只需要为应用程序中的数据库加载适当的 Node.js 驱动程序。

So,如何在 Express 应用程序中为数据库系统(如,MySQL、MongoDB)添加和使用一些最流行的Node.js模块?

准备工作:MySQL 5.7

host:'localhost',
user:'root',
password:'123456',
database:'webpiece_db'

特别说明:链接 mysql 数据库之前需要去 npm 安装 msyql 模块,mysql 模块支持 mysql 5.7+ 的数据库

npm install mysql --save

Node.js 连接 MySQL


Node.js 中,连接 MySQL 数据库,一般有两种方式:


[1] 简单连接


[2] pool 连接池

数据库连接池,负责分配、管理和释放数据库连接,

它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个,能明显提高对数据库操作的性能。


使用 express 连接 MySQL

npm install express --save
npm install mysql --save
// app.js
const express = require('express');
const app = express();
const mysql = require('mysql');
let pool = mysql.createPool({  // 创建一个连接池
	host:'localhost',
	user:'root',
	password:'123456',
	database:'webpiece_db'
});
 
let sql = 'select uname from users' 
 
app.get('/about',function(req,res){  // 请求:http://localhost:3000/about
	pool.getConnection(function(err,db){  // 将一个数据库连接加入到连接池
		if(err){
			console.error(err);
		}else{
			db.query(sql,function(err,rows,field){
				if(err){
					console.error(err)
				}else{
					// console.log(rows);
					// rows 值如下:
					// [
					//   RowDataPacket { uname: 'lynn' },
					//   RowDataPacket { uname: 'adrian' },
					//   RowDataPacket { uname: 'tom' }
					// ]
					res.send(rows);
				}
				db.release();  // 释放连接池中的数据库连接
				// pool.end();
			});
		}
	})
})
app.listen(3000,function(){
	console.log('服务启动中...');
})