首页 > 数据库 >如何使用 Node.js 和 MySQL 快速搭建简单的增删查改 API

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

时间:2024-11-26 17:43:47浏览次数:5  
标签:Node err res req db js API sql id

摘要

通过本文,你将学会如何使用 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 应用程序。如果想进一步提升,可以添加用户认证或优化接口的安全性。

赶紧试试吧!

 

本文为一只懒羊原创作品   原文地址:​​https://yfcov.com/exploit/n/rhsynjhmksdjjddzscga-112.html​

标签:Node,err,res,req,db,js,API,sql,id
From: https://www.cnblogs.com/wxdj/p/18570679

相关文章

  • js写飞机大战小游戏
    第一步,写一个html页面<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>飞机大战</title><style>body{margin:0;}canvas{display:block;background-color:#000;}</style&g......
  • hadoop~搭建HA集群之后不能自动切换namenode
    在搭好HA集群之后,想测试一下集群的高可用性,于是先把active的namenode给停掉:hadoop-daemon.shstopnamenode或者直接kill掉该节点namenode的对应进程也可。但是通过hdfshaadmin-getServiceStatemaster1查看,发现standby的namenode并没有自动切换成active,直到我把之前kill......
  • jquery仿PPT幻灯片特效插件ppt.js
    ppt.js是一款jquery仿PPT幻灯片特效插件。该jquery插件基于jquery来显示图片翻页效果,可全屏显示,以及自定义图片的宽度和高度。 演示  下载 使用方法在页面中引入jquery和ppt.js文件,以及字体图标文件iconic和插件样式文件ppt.css。<linkrel="stylesheet"hre......
  • node.js毕设基于Web的网上订餐系统的设计与实现程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于网上订餐系统的设计与实现的研究,现有研究主要以特定的编程语言或开发框架为主,专门针对基于Web的网上订餐系统全面功能设计与实现的研究较少。目前,国......
  • node.js毕设商品库存管理系统 程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于商品库存管理系统的研究,现有研究主要以大型企业的整体库存管理策略为主,专门针对毕业设计级别的商品库存管理系统的研究较少。在国内外的研究成果中,......
  • node.js毕设驾校管理系统程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于驾校管理系统的研究,现有研究主要以传统管理模式为主,专门针对信息化、系统化的驾校管理系统的研究相对较少。在国内外的研究成果中,部分管理系统聚焦......
  • 对数组操作的相关js函数
    汇总一下js中,数组的相关函数(如有问题,请在评论区q我哦!感谢!)1.添加和删除数组元素//1.push在数组末尾添加一个或多个元素,并返回新的长度(改变原数组)letarray=[1,2,3];array.push(4);console.log(array);//输出[1,2,3,4]//2.pop移除数组末尾的一个元素,并返......
  • 深入理解 JDBC API——从入门到精通
    深入理解JDBCAPI——从入门到精通引言JavaDatabaseConnectivity(JDBC)API是Java语言中用于与数据库进行交互的标准API。通过JDBC,开发者可以使用Java语言编写程序来连接、查询和操作各种关系型数据库。本文将详细讲解JDBCAPI的核心组件,并通过生动形象的案例帮助......
  • Jenkin window bat批处理脚本如何请求api,获取json对象返回值数据
    需求:在jenkins的windowsbat批处理脚本中,请求一个api返回json数据,然后获取返回值的某个指定key的value直接上脚本:cdC:\workspace\jenkinxx\workspace\job-ta-webgitcheckoutmastergitpulldir::使用curl请求APIcurl-shttp://xx.xx.xx.xx:8088/testapi/getData......
  • Jenkin window bat批处理脚本如何 获取json对象返回值数据
    前两天有这么个小需求:在cmd中运行某测试工具后/请求某个api后,会返回一个json结果,其中有一个参数的值每次都变且经常要用,正常情况复制粘贴就好了,但这个值非常长,配上cmd的标记+粘贴的行为,就很酸爽了。然后就想快速提取这个值,顺着cmd的这个思路,就走上了批处理的道路。借这个机会,简......