- 最近在学习Nodejs,今天有空整理了下连接与操作mysql数据库的步骤
- 如果觉得对你有所帮助就点个赞吧 o(∩_∩)o 哈哈
Nodejs操作数据库
1. 准备工作
- 一定要一定要先安装mysql数据库,不然你想,不装怎么连接怎么操作怎么存储?
- 关于如何安装请移步mysql安装详解
- 设置好你的密码,一般用户名是root,密码您随意~
- 建表。连接数据库,建表,加字段
2. Nodejs部分
- 需要先安装mysql模块 npm i mysql
- 之后可以通过mysql.createConnection方法新建一个数据库连接,需要传入的参数有地址、端口、登录名、密码,以及需要连接的数据库。mysql.createConnection会返回一个connection对象,可使用connection.query方法,传入SQL语句,对数据库进行相应操作。
const mysql = require('mysql');
// 1. 连接服务器
const connection = mysql.createConnection({
host: 'localhost', // 地址
port: 3306, // 端口,不传则默认3306
user: 'root', // 登录名
password: '*****', // 密码
database: 'web' // 连接的数据库
})
const username = 'lily'
const password = '888888'
connection.connect((err)=>{
if(err){
console.log(`链接失败${err}`);
}else{
console.log('链接成功');
}
})
// 向数据库中插入数据
connection.query(`INSERT INTO new_table ( id, username, password ) VALUES ( 0 , '${username}', '${password}')`, (err, data) => {
if (err) {
console.error(err)
} else {
console.log(data)
}
})
// 查询user_table表的数据
connection.query(`SELECT * FROM new_table`, (err, data) => {
if (err) {
console.error(err)
} else {
console.log(data)
}
})
// TODO 输出结果为
PS C:\NodeJs\start\demo19database> node .\index.js
链接成功
//插入数据成功
OkPacket {
fieldCount: 0,
affectedRows: 1,
insertId: 0,
serverStatus: 2,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0 }
// 查询结果
[ RowDataPacket { ID: 0, username: 'lily', password: '888888' } ]
但mysql.createConnection方法有一个缺陷,就是它一次只能创建一个连接,一旦有多个用户同时请求,就会造成请求排队等待。
因此为了提高性能,可以改用mysql.createPool方法,创建一个连接池,它可以创建n个与服务器之间的连接,需要使用时,可以自动从中选取一个空闲的连接使用。
const connection = mysql.createPool({
connectionLimit: 10, // 建立的连接数量,默认为10个
host: 'localhost', // 地址
port: 3306, // 端口,不传则默认3306
user: 'root', // 登录名
password: '*****', // 密码
database: 'web' // 连接的数据库
})