likes
comments
collection
share

第十二章:Node.js 实战入门指南 - Express 数据库集成和连接(MySQL、MongoDB、PostgreSQL、Redis)

作者站长头像
站长
· 阅读数 12

在上一个章节中 - 第十一章: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;

hostuserpassworddatabase 替换为你自己的 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;

hostuserpassworddatabase 替换为你的 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;

userhostdatabasepasswordport 替换为你自己的 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;

hostportpassword 替换为你自己的 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)的方式。我们提供了本地开发和生产环境下的代码配置示例,帮助你在不同环境中正确地连接和配置数据库。

请根据你的实际需求和数据库选择相应的代码配置示例,并替换为你自己的数据库连接信息。