第十二章:Node.js 实战入门指南 - Express 数据库集成和连接(MySQL、MongoDB、PostgreSQL、Redis)
在上一个章节中 - 第十一章:Node.js 实战入门指南 - 用数据库Sequelize ORM框架来实现CRUD我们学习了如何操作CRUD,今天我们把想着的数据库连接方式都来讲一遍,后面我们在项目中会用到
在本章中,我们将介绍如何在 Node.js 的 Express 应用程序中进行数据库集成和连接。我们将探讨几种主流数据库(MySQL、MongoDB、PostgreSQL、Redis)的连接方式,并提供在本地开发和生产环境中的代码配置示例。
MySQL 数据库连接
本地开发环境
在本地开发环境中,我们可以使用 mysql2
模块来连接 MySQL 数据库。以下是连接 MySQL 的示例代码:
const mysql = require('mysql2');
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'your_password',
database: 'your_database',
});
connection.connect((err) => {
if (err) {
console.error('Error connecting to MySQL database:', err);
return;
}
console.log('Connected to MySQL database!');
});
module.exports = connection;
将 host
、user
、password
和 database
替换为你自己的 MySQL 数据库的连接信息。上述代码创建了一个 MySQL 连接,并在连接成功后打印一条成功的消息。
生产环境配置
在生产环境中,我们建议使用连接池来管理数据库连接。连接池可以有效地管理和复用数据库连接,提高性能和可扩展性。以下是在生产环境中使用连接池连接 MySQL 数据库的示例代码:
const mysql = require('mysql2');
const pool = mysql.createPool({
host: 'your_host',
user: 'your_user',
password: 'your_password',
database: 'your_database',
connectionLimit: 10, // 设置连接池的连接数量
});
const connection = pool.promise();
module.exports = connection;
将 host
、user
、password
和 database
替换为你的 MySQL 数据库连接信息,并根据需求设置连接池的连接数量。
MongoDB 数据库连接
本地开发环境
在本地开发环境中,我们可以使用 mongoose
模块来连接 MongoDB 数据库。以下是连接 MongoDB 的示例代码:
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/your_database', {
useNewUrlParser: true,
useUnifiedTopology: true,
})
.then(() => {
console.log('Connected to MongoDB database!');
})
.catch((err) => {
console.error('Error connecting to MongoDB database:', err);
});
module.exports = mongoose.connection;
将 'mongodb://localhost/your_database'
替换为你自己的 MongoDB 连接 URL,其中 your_database
是你要连接的数据库名称。
生产环境配置
在生产环境中,我们建议使用环境变量来配置 MongoDB 连接。这样可以提高安全性和灵活性。以下是在生产环境中使用环境变量连接 MongoDB 数据库的示例代码:
const mongoose = require('mongoose');
mongoose.connect(process.env.MONGODB_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
})
.then(() => {
console.log('Connected to MongoDB database!');
})
.catch((err) => {
console.error('Error connecting to MongoDB database:', err);
});
module.exports = mongoose.connection;
在上述代码中,我们使用 process.env.MONGODB_URI
来获取 MongoDB 连接 URL,该值可以通过设置环境变量来配置。
PostgreSQL 数据库连接
本地开发环境
在本地开发环境中,我们可以使用 pg
模块来连接 PostgreSQL 数据库。以下是连接 PostgreSQL 的示例代码:
const { Pool } = require('pg');
const pool = new Pool({
user: 'your_user',
host: 'localhost',
database: 'your_database',
password: 'your_password',
port: 5432,
});
pool.connect()
.then(() => {
console.log('Connected to PostgreSQL database!');
})
.catch((err) => {
console.error('Error connecting to PostgreSQL database:', err);
});
module.exports = pool;
将 user
、host
、database
、password
和 port
替换为你自己的 PostgreSQL 数据库的连接信息。
生产环境配置
在生产环境中,我们建议使用连接池连接 PostgreSQL 数据库。以下是在生产环境中使用连接池连接 PostgreSQL 的示例代码:
const { Pool } = require('pg');
const pool = new Pool({
connectionString: process.env.DATABASE_URL,
ssl: {
rejectUnauthorized: false,
},
});
pool.connect()
.then(() => {
console.log('Connected to PostgreSQL database!');
})
.catch((err) => {
console.error('Error connecting to PostgreSQL database:', err);
});
module.exports = pool;
在上述代码中,我们使用 process.env.DATABASE_URL
来获取 PostgreSQL 连接字符串,该值可以通过设置环境变量来配置。
Redis 数据库连接
本地开发环境
在本地开发环境中,我们可以使用 ioredis
模块来连接 Redis 数据库。以下是连接 Redis 的示例代码:
const Redis = require('ioredis');
const redis = new Redis({
host: 'localhost',
port: 6379,
password: 'your_password',
});
redis.on('connect', () => {
console.log('Connected to Redis database!');
});
module.exports = redis;
将 host
、port
和 password
替换为你自己的 Redis 数据库的连接信息。上述代码创建了一个 Redis 客户端实例,并在连接成功后打印一条成功的消息。
生产环境配置
在生产环境中,我们建议使用环境变量来配置 Redis 连接。以下是在生产环境中使用环境变量连接 Redis 数据库的示例代码:
const Redis = require('ioredis');
const redis = new Redis(process.env.REDIS_URL);
redis.on('connect', () => {
console.log('Connected to Redis database!');
});
module.exports = redis;
在上述代码中,我们使用 process.env.REDIS_URL
来获取 Redis 连接 URL,该值可以通过设置环境变量来配置。
通过以上步骤,你已经成功连接到 Redis 数据库,并准备好使用 Redis 进行数据操作。
总结:
在本章中,我们介绍了在 Node.js 的 Express 应用程序中集成和连接主流数据库(MySQL、MongoDB、PostgreSQL、Redis)的方式。我们提供了本地开发和生产环境下的代码配置示例,帮助你在不同环境中正确地连接和配置数据库。
请根据你的实际需求和数据库选择相应的代码配置示例,并替换为你自己的数据库连接信息。
- 第十三章:Node.js 实战入门指南 - Redis实战入门(更新中)
- 目录章节传送门
转载自:https://juejin.cn/post/7254027262886346811