Node.js 与 MySQL 实现增删改查 API 教程

如何使用 Node.js 和 MySQL 快速搭建简单的增删查改 API

摘要

通过本文,你将学会如何使用 Node.js 和 MySQL 搭建一个简单的 RESTful API,包括创建数据库、创建表、插入数据、查询数据、更新数据以及删除数据的完整操作示例。


正文

在现代 Web 开发中,Node.js 与 MySQL 的组合非常流行,它们的高性能和易用性让开发者可以快速搭建数据驱动的应用程序。本教程将通过具体的代码示例,指导你完成以下操作:

  1. 创建数据库
  2. 创建表
  3. 插入数据
  4. 查询数据
  5. 更新数据
  6. 删除数据

以下是完整代码及操作解析:


1. 环境准备

在开始之前,请确保你已经安装了以下工具:

  • Node.js
  • MySQL

然后安装必要的 Node.js 包:

npm install express mysql

2. 初始化项目

以下是项目初始化的基本代码:

const express = require("express");
const app = express();
const mysql = require("mysql");

// 创建数据库连接
const db = mysql.createConnection({
    host: "localhost",
    user: "root",
    password: "root",
    database: "nodemysql"
});

// 连接数据库
db.connect((err) => {
    if (err) throw err;
    console.log('连接成功');
});

// 启动服务
app.listen(3000, () => {
    console.log("服务器开启在3000端口....");
});

此段代码中,我们初始化了 Express 和 MySQL 并建立了数据库连接。服务运行在本地 3000 端口。


3. 功能实现

1)创建数据库

访问 http://localhost:3000/createdb 即可创建名为 nodemysql 的数据库:

app.get("/createdb", (req, res) => {
    let sql = "CREATE DATABASE nodemysql";
    db.query(sql, (err, result) => {
        if (err) throw err;
        res.send("Database created successfully...");
    });
});

2)创建表

创建一个 posts 表,其中包括 id(主键、自增)、titlebody 字段:

app.get("/createpoststable", (req, res) => {
    let sql = "CREATE TABLE posts(id int AUTO_INCREMENT, title VARCHAR(255), body VARCHAR(255), PRIMARY KEY(id))";
    db.query(sql, (err, result) => {
        if (err) throw err;
        res.send("Posts table created successfully...");
    });
});

3)插入数据

通过 API 插入一条记录:

app.get("/addpost2", (req, res) => {
    let post = { title: "post two", body: "content of post two" };
    let sql = "INSERT INTO posts SET ?";
    db.query(sql, post, (err, result) => {
        if (err) throw err;
        res.send("Post added successfully...");
    });
});

4)查询所有数据

使用以下代码获取 posts 表中的所有记录:

app.get("/getposts", (req, res) => {
    let sql = "SELECT * FROM posts";
    db.query(sql, (err, results) => {
        if (err) throw err;
        res.json(results);
    });
});

5)查询单条数据

通过动态 ID 查询特定记录:

app.get("/getposts/:id", (req, res) => {
    let sql = `SELECT * FROM posts WHERE id = ${req.params.id}`;
    db.query(sql, (err, result) => {
        if (err) throw err;
        res.json(result);
    });
});

6)更新数据

更新指定 ID 的记录内容:

app.get("/updatepost/:id", (req, res) => {
    let newTitle = "Updated Title";
    let sql = `UPDATE posts SET title = '${newTitle}' WHERE id = ${req.params.id}`;
    db.query(sql, (err, result) => {
        if (err) throw err;
        res.send(`Post with ID ${req.params.id} updated successfully...`);
    });
});

7)删除数据

通过 ID 删除一条记录:

app.get("/deletepost/:id", (req, res) => {
    let sql = `DELETE FROM posts WHERE id = ${req.params.id}`;
    db.query(sql, (err, result) => {
        if (err) throw err;
        res.send("Post deleted successfully...");
    });
});

4. 总结

通过本教程,你已经掌握了如何使用 Node.js 和 MySQL 构建一个基础的增删查改 API。这些操作可以帮助你快速构建数据驱动的 Web 应用程序。如果想进一步提升,可以添加用户认证或优化接口的安全性。

赶紧试试吧!

阅读剩余
THE END