在 Node.js 中,有多种方法可以连接 MySQL 数据库。以下是几种常用的方法:
mysql
模块:mysql
是一个流行的第三方模块,可以通过 npm
安装。可以使用该模块提供的 createConnection()
方法创建一个数据库连接,并通过该连接执行 SQL 查询和操作。以下是一个示例代码:
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'username',
password: 'password',
database: 'database_name'
});
connection.connect((err) => {
if (err) {
console.error('Error connecting to MySQL database:', err);
return;
}
console.log('Connected to MySQL database.');
// 在这里执行数据库查询和操作
connection.end();
});
在上述代码中,使用 createConnection()
方法创建一个数据库连接,传入连接配置参数(如主机名、用户名、密码和数据库名)。然后通过 connect()
方法连接到数据库,在回调函数中处理连接结果。在连接成功后,可以在回调函数中执行数据库查询和操作。最后使用 end()
方法关闭数据库连接。
mysql2
模块:mysql2
是一个更高性能的 MySQL 客户端,也可以通过 npm
安装。与 mysql
模块类似,可以使用 createConnection()
方法创建数据库连接,并通过该连接执行 SQL 查询和操作。以下是一个示例代码:
const mysql = require('mysql2');
const connection = mysql.createConnection({
host: 'localhost',
user: 'username',
password: 'password',
database: 'database_name'
});
connection.connect((err) => {
if (err) {
console.error('Error connecting to MySQL database:', err);
return;
}
console.log('Connected to MySQL database.');
// 在这里执行数据库查询和操作
connection.end();
});
与使用 mysql
模块的方法类似,通过 createConnection()
方法创建数据库连接,并在回调函数中处理连接结果。在连接成功后,可以在回调函数中执行数据库查询和操作。最后使用 end()
方法关闭数据库连接。
ORM 库可以将数据库表映射为 JavaScript 对象,提供更方便的操作接口。常用的 ORM 库包括 Sequelize
、TypeORM
和 Knex.js
等。以下是使用 Sequelize
ORM 库的示例代码:
const Sequelize = require('sequelize');
const sequelize = new Sequelize('database_name', 'username', 'password', {
host: 'localhost',
dialect: 'mysql'
});
sequelize.authenticate()
.then(() => {
console.log('Connected to MySQL database.');
// 在这里执行数据库查询和操作
sequelize.close();
})
.catch((err) => {
console.error('Error connecting to MySQL database:', err);
});
在上述代码中,首先创建一个 Sequelize
实例,传入数据库连接配置参数。然后使用 authenticate()
方法验证连接是否成功,在 then()
方法中处理连接结果。在连接成功后,可以在 then()
方法中执行数据库查询和操作。最后使用 close()
方法关闭数据库连接。
如果你使用 Egg.js 框架来开发 Node.js 应用,并连接 MySQL 数据库,可以使用 Egg.js 提供的插件 egg-mysql
来简化数据库操作。以下是使用 Egg.js 连接 MySQL 数据库的步骤:
egg-mysql
插件:在你的 Egg.js 项目目录下,使用以下命令安装 egg-mysql
插件:$ npm install egg-mysql --save
config/config.default.js
文件中,添加以下配置来配置数据库连接:exports.mysql = {
// 单数据库配置信息
client: {
// 数据库类型
type: 'mysql',
// 主机地址
host: 'localhost',
// 端口号
port: '3306',
// 用户名
user: 'username',
// 密码
password: 'password',
// 数据库名
database: 'database_name',
},
// 是否加载到 app 上,默认开启
app: true,
// 是否加载到 agent 上,默认关闭
agent: false,
};
根据你的实际情况修改上述配置中的主机地址、端口号、用户名、密码和数据库名。
app.mysql
来获取数据库连接,并执行 SQL 查询和操作。以下是一个示例代码:const Controller = require('egg').Controller;
class UserController extends Controller {
async index() {
const { ctx, app } = this;
const result = await app.mysql.query('SELECT * FROM users');
ctx.body = result;
}
}
module.exports = UserController;
在上述代码中,通过 app.mysql.query()
方法执行 SQL 查询,并在 ctx.body
中返回查询结果。你可以根据实际需求使用其他的数据库操作方法,如 app.mysql.get()
、app.mysql.insert()
、app.mysql.update()
等。
egg-sequelize
。你可以按照上述步骤安装和配置 egg-sequelize
插件,并在 Egg.js 的 Controller 或 Service 中使用 app.model
来获取 Sequelize 模型,并执行数据库查询和操作。使用原生的 mysql
模块:
mysql
模块是 Node.js 官方提供的模块,使用简单直观,对于简单的数据库操作足够。使用 ORM(对象关系映射)库:
使用 Egg.js 插件:
根据上述优缺点和使用场景,你可以选择适合自己项目需求的连接 MySQL 数据库的方法。如果你的项目需求较简单,可以使用原生的 mysql
模块;如果你希望使用更方便的操作接口,可以选择使用 ORM 库;如果你使用 Egg.js 框架开发项目,可以使用 Egg.js 提供的插件来简化数据库操作。