1. Node.js连接MySQL数据库
在Node.js中,使用MySQL进行数据库操作,需要先安装mysql包,使用npm install命令即可,安装完毕后,可以使用以下代码连接MySQL数据库:
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'username',
password: 'password',
database: 'database_name'
});
connection.connect((error) => {
if(error) {
console.log('连接失败');
} else {
console.log('连接成功');
}
});
其中,host、user、password和database是MySQL数据库的配置信息,分别表示MySQL所在的主机名、用户名、密码和要连接的数据库名。
1.1 连接池
在Node.js中,还可以使用连接池(pool)来管理数据库连接,提高应用程序的性能和可靠性。连接池中包含了多个连接,应用程序在需要连接数据库时,可以从连接池中拿取连接,使用完毕后再将连接释放回连接池。
以下是使用连接池进行数据库操作的示例代码:
const mysql = require('mysql');
const pool = mysql.createPool({
host: 'localhost',
user: 'username',
password: 'password',
database: 'database_name',
connectionLimit: 10
});
pool.getConnection((error, connection) => {
if(error) {
console.log('获取连接失败');
} else {
connection.query(sql, params, (error, results, fields) => {
// 处理查询结果
connection.release(); // 释放连接
});
}
});
其中,connectionLimit表示连接池中最多可以容纳的连接数。
2. 数据库操作
连接数据库成功后,就可以进行数据库操作了。MySQL支持的基本操作包括:增(Insert)、删(Delete)、改(Update)和查(Select)。
2.1 插入数据
在MySQL中,可以使用INSERT INTO语句向数据库中插入数据。以下是使用连接池向数据库中插入数据的示例代码:
const mysql = require('mysql');
const pool = mysql.createPool({
host: 'localhost',
user: 'username',
password: 'password',
database: 'database_name',
connectionLimit: 10
});
const user = {
name: 'Tom',
age: 18,
gender: 'male'
};
pool.getConnection((error, connection) => {
if(error) {
console.log('获取连接失败');
} else {
connection.query('INSERT INTO users SET ?', user, (error, results, fields) => {
if(error) {
console.log('插入数据失败:', error);
} else {
console.log('插入数据成功');
}
connection.release();
});
}
});
其中,'INSERT INTO users SET ?'表示向users表中插入一条记录,values后面的user表示要插入的数据,其中的key值与表中的字段名相对应。如果插入成功,则会返回一个result对象,可以通过result.insertId属性获取插入的记录的ID。
2.2 查询数据
在MySQL中,可以使用SELECT语句查询数据库中的数据。
以下是使用连接池查询数据库中数据的示例代码:
const mysql = require('mysql');
const pool = mysql.createPool({
host: 'localhost',
user: 'username',
password: 'password',
database: 'database_name',
connectionLimit: 10
});
pool.getConnection((error, connection) => {
if(error) {
console.log('获取连接失败');
} else {
connection.query('SELECT * FROM users', (error, results, fields) => {
if(error) {
console.log('查询数据失败:', error);
} else {
console.log('查询数据成功:', results);
}
connection.release();
});
}
});
其中,'SELECT * FROM users'表示从users表中查询所有记录。如果查询成功,则会返回一个results数组,每个元素代表一条记录,可以通过元素的属性获取记录中对应属性的值。
2.3 更新数据
在MySQL中,可以使用UPDATE语句更新数据库中的数据。
以下是使用连接池更新数据库中数据的示例代码:
const mysql = require('mysql');
const pool = mysql.createPool({
host: 'localhost',
user: 'username',
password: 'password',
database: 'database_name',
connectionLimit: 10
});
const id = 1;
const age = 20;
pool.getConnection((error, connection) => {
if(error) {
console.log('获取连接失败');
} else {
connection.query('UPDATE users SET age = ? WHERE id = ?', [age, id], (error, results, fields) => {
if(error) {
console.log('更新数据失败:', error);
} else {
console.log('更新数据成功:', results);
}
connection.release();
});
}
});
其中,'UPDATE users SET age = ? WHERE id = ?'表示将users表中id为1的记录的age字段更新为20。如果更新成功,则会返回一个result对象,可以通过result.affectedRows属性获取受影响的行数。
2.4 删除数据
在MySQL中,可以使用DELETE语句删除数据库中的数据。
以下是使用连接池删除数据库中数据的示例代码:
const mysql = require('mysql');
const pool = mysql.createPool({
host: 'localhost',
user: 'username',
password: 'password',
database: 'database_name',
connectionLimit: 10
});
const id = 1;
pool.getConnection((error, connection) => {
if(error) {
console.log('获取连接失败');
} else {
connection.query('DELETE FROM users WHERE id = ?', [id], (error, results, fields) => {
if(error) {
console.log('删除数据失败:', error);
} else {
console.log('删除数据成功:', results);
}
connection.release();
});
}
});
其中,'DELETE FROM users WHERE id = ?'表示从users表中删除id为1的记录。如果删除成功,则会返回一个result对象,可以通过result.affectedRows属性获取受影响的行数。
3. 总结
在Node.js中使用MySQL进行数据库操作,需要先连接数据库,然后可以使用INSERT、SELECT、UPDATE和DELETE语句进行数据库操作。为了提高应用程序的性能和可靠性,还可以使用连接池(pool)来管理数据库连接。