发布于 2026-01-06 8 阅读
0

使用 Node.js 和 Express 的常用数据库 DEV 全球展示挑战赛,由 Mux 呈现:展示你的项目!

使用 Node.js 和 Express 的常用数据库

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

在 Web 开发领域,Node.js 和 Express 已成为构建快速、可扩展且高效的服务器端应用程序的首选技术。数据库是这些应用程序的关键组成部分。选择合适的数据库对于应用程序的性能和可靠性至关重要。在本篇博文中,我们将探讨 Node.js 和 Express 中最常用的一些数据库,讨论它们的特性、应用场景以及如何将它们集成到您的项目中。

1. MongoDB

概述

MongoDB 是一款流行的 NoSQL 数据库,以其灵活性和可扩展性而闻名。它以类似 JSON 的文档格式存储数据,因此易于与 Node.js 等基于 JavaScript 的技术进行交互和集成。

特征

  • 无模式设计:您可以存储没有预定义模式的文档,从而实现数据模型的灵活性。
  • 可扩展性:MongoDB 使用分片进行水平扩展,使其适用于大规模应用程序。
  • 丰富的查询语言:支持多种查询,包括按字段搜索、范围查询和正则表达式搜索。

用例

  • 实时分析
  • 内容管理系统
  • 电子商务平台
  • 物联网 (IoT) 应用

与 Node.js 和 Express 集成

要将 MongoDB 与 Node.js 和 Express 集成,您可以使用 Mongoose 库,它提供了一个基于模式的简单解决方案来建模您的应用程序数据。

例子:

  1. 安装 Mongoose

    npm install mongoose
    
  2. 连接到 MongoDB

    const mongoose = require('mongoose');
    
    mongoose.connect('mongodb://localhost:27017/mydatabase', {
      useNewUrlParser: true,
      useUnifiedTopology: true,
    }).then(() => {
      console.log('Connected to MongoDB');
    }).catch(err => {
      console.error('Error connecting to MongoDB', err);
    });
    
  3. 定义模式和模型

    const { Schema, model } = mongoose;
    
    const userSchema = new Schema({
      name: String,
      email: String,
      password: String,
    });
    
    const User = model('User', userSchema);
    
  4. 创建快速路线

    const express = require('express');
    const User = require('./models/User');
    
    const app = express();
    
    app.use(express.json());
    
    app.post('/users', async (req, res) => {
      const user = new User(req.body);
      try {
        await user.save();
        res.status(201).send(user);
      } catch (error) {
        res.status(400).send(error);
      }
    });
    
    app.listen(3000, () => {
      console.log('Server is running on port 3000');
    });
    

2. MySQL

概述

MySQL 是一款广泛使用的关系型数据库管理系统,以其可靠性、高性能和易用性而闻名。它使用结构化查询语言 (SQL) 进行数据库管理。

特征

  • ACID 合规性:确保交易的可靠性和数据完整性。
  • 可扩展性:能够处理具有高性能要求的大型数据库。
  • 安全性:提供强大的安全功能,包括数据加密和用户身份验证。

用例

  • 金融应用
  • 库存管理系统
  • 客户关系管理(CRM)系统
  • 需要结构化数据存储的Web应用程序

与 Node.js 和 Express 集成

要将 MySQL 与 Node.js 和 Express 集成,您可以使用对象关系映射 (ORM) 库mysql2sequelize

例子:

  1. 安装 MySQL2

    npm install mysql2
    
  2. 连接到 MySQL

    const mysql = require('mysql2');
    
    const connection = mysql.createConnection({
      host: 'localhost',
      user: 'root',
      database: 'mydatabase',
      password: 'password',
    });
    
    connection.connect((err) => {
      if (err) {
        console.error('Error connecting to MySQL', err);
        return;
      }
      console.log('Connected to MySQL');
    });
    
  3. 创建快速路线

    const express = require('express');
    
    const app = express();
    
    app.use(express.json());
    
    app.get('/users', (req, res) => {
      connection.query('SELECT * FROM users', (err, results) => {
        if (err) {
          res.status(500).send(err);
          return;
        }
        res.send(results);
      });
    });
    
    app.listen(3000, () => {
      console.log('Server is running on port 3000');
    });
    

3. PostgreSQL

概述

PostgreSQL 是一款功能强大的开源关系型数据库系统,以其高级特性和可扩展性而闻名。它同时支持 SQL 和 JSON 查询,为各种应用场景提供了灵活的解决方案。

特征

  • ACID 合规性:确保交易的可靠性和数据完整性。
  • 高级数据类型:支持数组、hstore 和 JSONB,以适应更复杂的数据模型。
  • 可扩展性:允许用户定义自己的数据类型、运算符和索引方法。

用例

  • 复杂的Web应用程序
  • 地理空间应用(使用 PostGIS)
  • 数据仓库
  • 实时应用

与 Node.js 和 Express 集成

要将 PostgreSQL 与 Node.js 和 Express 集成,您可以使用pg库或 ORM,例如 PostgreSQL 或SequelizeORM TypeORM

例子:

  1. 安装pg

    npm install pg
    
  2. 连接到 PostgreSQL

    const { Client } = require('pg');
    
    const client = new Client({
      user: 'user',
      host: 'localhost',
      database: 'mydatabase',
      password: 'password',
      port: 5432,
    });
    
    client.connect()
      .then(() => console.log('Connected to PostgreSQL'))
      .catch(err => console.error('Error connecting to PostgreSQL', err));
    
  3. 创建快速路线

    const express = require('express');
    
    const app = express();
    
    app.use(express.json());
    
    app.get('/users', async (req, res) => {
      try {
        const result = await client.query('SELECT * FROM users');
        res.send(result.rows);
      } catch (error) {
        res.status(500).send(error);
      }
    });
    
    app.listen(3000, () => {
      console.log('Server is running on port 3000');
    });
    

4. Redis

概述

Redis 是一种内存数据结构存储系统,可用作数据库、缓存和消息代理。它支持各种数据结构,例如字符串、哈希表、列表、集合等等。

特征

  • 内存存储:数据存储在内存中,因此操作速度极快。
  • 发布/订阅消息传递:支持发布/订阅消息传递模式。
  • 持久化:提供不同级别的持久化,从快照到仅追加文件。

用例

  • 缓存
  • 实时分析
  • 会话存储
  • 消息代理

与 Node.js 和 Express 集成

要将 Redis 与 Node.js 和 Express 集成,可以使用该redis库。

例子:

  1. 安装 Redis

    npm install redis
    
  2. 连接到 Redis

    const redis = require('redis');
    
    const client = redis.createClient();
    
    client.on('connect', () => {
      console.log('Connected to Redis');
    });
    
    client.on('error', (err) => {
      console.error('Error connecting to Redis', err);
    });
    
  3. 创建快速路线

    const express = require('express');
    
    const app = express();
    
    app.use(express.json());
    
    app.get('/cache', (req, res) => {
      client.get('key', (err, value) => {
        if (err) {
          res.status(500).send(err);
          return;
        }
        res.send(value);
      });
    });
    
    app.listen(3000, () => {
      console.log('Server is running on port 3000');
    });
    

结论

为 Node.js 和 Express 应用选择合适的数据库对其性能和可扩展性至关重要。MongoDB、MySQL、PostgreSQL 和 Redis 都是非常流行的选择,各自拥有独特的功能和优势。了解它们的优势以及如何将它们集成到您的项目中,将有助于您构建健壮高效的应用程序。

欢迎随意尝试使用这些数据库。

文章来源:https://dev.to/vyan/the-most-commonly-used-databases-with-nodejs-and-express-1koe