NodeJs数据库交互

class Mysql,SequlizeJs,Mongoose

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)可以大大简化数据操作和管理。通过这些工具,你可以更高效地进行数据库操作,组织和管理数据。

评论区
评论列表
menu