🔍 登录 注册

NodeJs数据库交互

大 大苹果 2024-08-10 algorithm 👁 14495 ⏱ 4min

1. 与数据库交互

与数据库进行交互是后端开发的核心任务之一。你可以选择不同的数据库技术,例如 MySQL(关系型数据库)和 MongoDB(非关系型数据库)。学习如何与这些数据库进行交互,并使用 ORM(对象关系映射)库来简化数据操作是很重要的。

2. 选择数据库

2.1 MySQL

MySQL 是一个流行的关系型数据库管理系统,支持 SQL(结构化查询语言)来操作数据。适用于需要复杂查询和事务支持的应用场景。

安装 MySQL

sudo apt-get update
sudo apt-get install mysql-server

基本操作

-- 创建数据库
CREATE DATABASE my_database;

-- 使用数据库
USE my_database;

-- 创建表
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    email VARCHAR(255) UNIQUE NOT NULL
);

-- 插入数据
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');

-- 查询数据
SELECT * FROM users;

2.2 MongoDB

MongoDB 是一个流行的非关系型数据库,使用文档存储数据(JSON 样式)。适用于处理大规模、结构不固定的数据。

安装 MongoDB

sudo apt-get update
sudo apt-get install -y mongodb

基本操作

// 启动 MongoDB
mongod

// 连接到 MongoDB
mongo

// 使用数据库
use my_database

// 创建集合
db.createCollection("users")

// 插入文档
db.users.insertOne({ name: "Alice", email: "alice@example.com" })

// 查询文档
db.users.find()

3. 使用 ORM 进行数据操作

ORM(对象关系映射)可以简化数据库操作,使你可以使用 JavaScript 对象而不是 SQL 查询进行数据操作。

3.1 Sequelize.js(用于 MySQL、PostgreSQL、SQLite 等)

Sequelize.js 是一个基于 Promise 的 ORM,支持多种 SQL 数据库。它简化了模型定义、查询和数据管理。

安装 Sequelize.js 和 MySQL 依赖

npm install sequelize mysql2

配置 Sequelize.js

const { Sequelize, DataTypes } = require('sequelize');

// 创建 Sequelize 实例
const sequelize = new Sequelize('my_database', 'user', 'password', {
    host: 'localhost',
    dialect: 'mysql'
});

// 定义模型
const User = sequelize.define('User', {
    name: {
        type: DataTypes.STRING,
        allowNull: false
    },
    email: {
        type: DataTypes.STRING,
        allowNull: false,
        unique: true
    }
});

// 同步数据库
sequelize.sync().then(() => console.log('数据库已同步'));

// 插入数据
User.create({ name: 'Alice', email: 'alice@example.com' });

// 查询数据
User.findAll().then(users => console.log(users));

3.2 Mongoose(用于 MongoDB)

Mongoose 是一个 MongoDB 的 ODM(对象文档映射)库,它为 MongoDB 提供了一个更具结构化的方式来操作数据。

安装 Mongoose

npm install mongoose

配置 Mongoose

const mongoose = require('mongoose');

// 连接到 MongoDB
mongoose.connect('mongodb://localhost/my_database', {
    useNewUrlParser: true,
    useUnifiedTopology: true
});

// 定义模型
const UserSchema = new mongoose.Schema({
    name: String,
    email: { type: String, unique: true }
});

const User = mongoose.model('User', UserSchema);

// 插入数据
User.create({ name: 'Alice', email: 'alice@example.com' })
    .then(() => console.log('用户已创建'));

// 查询数据
User.find().then(users => console.log(users));

总结

学习如何与数据库进行交互是后端开发的重要部分。选择合适的数据库(如 MySQL 或 MongoDB)并掌握相应的 ORM 工具(如 Sequelize.js 或 Mongoose)可以大大简化数据操作和管理。通过这些工具,你可以更高效地进行数据库操作,组织和管理数据。

读完了?给作者一点支持

本文采用 CC BY 4.0 协议转载 · © 大苹果

评论(0)

登录 后参与评论。

  • 还没有评论,来抢沙发。

🔗 相关文章

动态规划从入门到进阶:状态设计与空间优化的完整方法论

从暴力递归到记忆化与递推,覆盖背包、区间、状态压缩等模型,给出动态规划状态设计与空间优化的完整方法论。

21 天前👍 0

Go 排序算法实战:从冒泡到 TimSort 的复杂度与工程取舍

用 Go 实现九种经典排序,剖析复杂度、稳定性与适用场景,并拆解标准库 sort 背后的 introsort 工程取舍。

21 天前👍 0

RabbitMQ 标准队列

RabbitMQ 标准队列(Classic Queue)是消息传递系统中最基本的队列类型,消息按先进先出(FIFO)的顺序存储和传递。以下是标准队列的常见应用场景和详细说明: ### 1. **任务队列(Task Queue)** - **场景描述**:在后台处理任务时,如图像处理、视频转码、数据分析等,需要将任务分配给多个工作节点进行处理,避免阻塞主应用。 - **应用说明**:在任务队列中,每个任务都会被推送到 RabbitMQ 的标准队列中,多个消费者从队列中获取任务并处理,任务处理完毕后删除队列中的消息。 - **举例**: - **应用**:电商网站后台处理订单数据,如生成发货单、发送确认邮件等。这些任务可以异步处理,以提高系统的响应速度。 - **代码示例(Node.js)**: ```javascript // 生产者:将任务添加到队列 const amqp = require('amqplib/callback_api'); amqp.connect('amqp://localhost', func

2024/8/11👍 0