微信小程序中,通过Node.js连接本地 MySQL 实现数据的增删改查

微信小程序中,通过Node.js连接本地 MySQL 实现数据的增删改查的过程,可以分为以下几个步骤:

1. 准备工作

必要工具:

  • 安装 Node.js
  • 安装 MySQL 数据库(如未安装,请自行下载安装并配置)
  • 确保小程序开发工具已安装

2. 搭建 Node.js 后端服务

安装依赖

在 Node.js 项目中,使用 npm init 初始化项目,并安装以下依赖:

npm install express mysql cors body-parser

express: 用于搭建 Web 服务。

mysql: 用于连接和操作 MySQL 数据库。

cors: 用于解决跨域问题。

body-parser: 用于解析 POST 请求的数据。

创建数据库表

在 MySQL 中创建一个测试数据库和表:

CREATE DATABASE test_db;

USE test_db;

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    age INT,
    email VARCHAR(100)
);

编写 Node.js 代码

创建一个 index.js 文件:

const express = require('express');
const mysql = require('mysql');
const bodyParser = require('body-parser');
const cors = require('cors');

const app = express();
const port = 3000;

// 中间件
app.use(cors());
app.use(bodyParser.json());

// 配置 MySQL 数据库
const db = mysql.createConnection({
    host: 'localhost',
    user: 'root', // 替换为你的 MySQL 用户名
    password: 'password', // 替换为你的 MySQL 密码
    database: 'test_db',
});

// 连接数据库
db.connect((err) => {
    if (err) {
        console.error('数据库连接失败:', err);
        return;
    }
    console.log('数据库连接成功');
});

// 增删改查接口
// 查询数据
app.get('/users', (req, res) => {
    const sql = 'SELECT * FROM users';
    db.query(sql, (err, results) => {
        if (err) {
            res.status(500).send(err);
        } else {
            res.json(results);
        }
    });
});

// 添加数据
app.post('/users', (req, res) => {
    const { name, age, email } = req.body;
    const sql = 'INSERT INTO users (name, age, email) VALUES (?, ?, ?)';
    db.query(sql, [name, age, email], (err, result) => {
        if (err) {
            res.status(500).send(err);
        } else {
            res.json({ id: result.insertId });
        }
    });
});

// 修改数据
app.put('/users/:id', (req, res) => {
    const { id } = req.params;
    const { name, age, email } = req.body;
    const sql = 'UPDATE users SET name = ?, age = ?, email = ? WHERE id = ?';
    db.query(sql, [name, age, email, id], (err, result) => {
        if (err) {
            res.status(500).send(err);
        } else {
            res.json(result);
        }
    });
});

// 删除数据
app.delete('/users/:id', (req, res) => {
    const { id } = req.params;
    const sql = 'DELETE FROM users WHERE id = ?';
    db.query(sql, [id], (err, result) => {
        if (err) {
            res.status(500).send(err);
        } else {
            res.json(result);
        }
    });
});

// 启动服务
app.listen(port, () => {
    console.log(`服务运行在 http://localhost:${port}`);
});

3. 微信小程序端请求接口

配置请求域名

在微信开发者工具中,进入 “详情” -> “本地设置”,将本地服务 http://localhost:3000 配置为合法请求域名。

在小程序中调用 API

在小程序页面中,编写以下代码以完成数据交互。

示例代码:

// 查询数据
wx.request({
  url: 'http://localhost:3000/users',
  method: 'GET',
  success(res) {
    console.log('查询成功:', res.data);
  },
  fail(err) {
    console.error('查询失败:', err);
  }
});

// 添加数据
wx.request({
  url: 'http://localhost:3000/users',
  method: 'POST',
  data: {
    name: '张三',
    age: 25,
    email: 'zhangsan@example.com',
  },
  success(res) {
    console.log('添加成功:', res.data);
  },
  fail(err) {
    console.error('添加失败:', err);
  }
});

// 修改数据
wx.request({
  url: 'http://localhost:3000/users/1',
  method: 'PUT',
  data: {
    name: '李四',
    age: 26,
    email: 'lisi@example.com',
  },
  success(res) {
    console.log('修改成功:', res.data);
  },
  fail(err) {
    console.error('修改失败:', err);
  }
});

// 删除数据
wx.request({
  url: 'http://localhost:3000/users/1',
  method: 'DELETE',
  success(res) {
    console.log('删除成功:', res.data);
  },
  fail(err) {
    console.error('删除失败:', err);
  }
});

4. 注意事项

  1. 跨域问题:本示例已通过 cors 解决跨域问题。如果有其他跨域需求,可根据实际情况调整。
  2. 数据库配置:确保数据库的用户名、密码、端口配置正确。
  3. 接口安全:生产环境中需要增加身份验证(如 JWT)、数据校验等安全措施。
  4. 环境配置:在正式环境中,建议使用 HTTPS 并部署到服务器上。

这样,小程序通过 Node.js 和 MySQL 实现增删改查功能就完成了!

发布者:myrgd,转载请注明出处:https://www.object-c.cn/5143

Like (0)
Previous 2024年12月8日 上午11:34
Next 2024年12月9日 下午8:14

相关推荐

  • 在 Apache Spark 中,任务的切分(Task Division)机制

    在 Apache Spark 中,任务的切分(Task Division)是 Spark 将应用程序逻辑划分为多个并行任务的核心机制。任务切分的主要原则是基于数据分区和操作算子。以下是任务切分的核心原则和关键影响因素: 1. Spark 任务切分的基本概念 2. 任务切分的原则 2.1 基于分区(Partition)的切分 2.2 基于依赖关系(Depend…

    2024年11月25日
    00
  • 修复 Elementor 网站上出现的 HTTPS 400 错误请求(服务器错误)

    在修复 Elementor 网站上出现的 HTTPS 400 错误请求(服务器错误)时,您需要采取以下步骤来排查和解决问题。这类错误通常与服务器配置、插件冲突或 HTTPS 配置相关。 1. 检查 HTTPS 配置 2. 排查插件冲突 3. 检查主题兼容性 4. 调整服务器配置 URL 重写规则: 5. 清理缓存 6. 检查网络请求 7. 联系主机服务商 如…

    2024年12月9日
    00
  • 博客网站的链接添加nofollow的好处

    在博客中为链接添加 nofollow 属性可以在以下几个方面带来好处: 1. 防止权重流失作用:为外部链接添加 nofollow 标签可以阻止搜索引擎将页面权重(PageRank)传递给目标页面,从而保留网站自身的 SEO 权重。适用场景:指向不可靠或低质量内容的链接。赞助商链接或付费推广链接。 2. 避免搜索引擎惩罚作用:搜索引擎(如 Google)要求对…

    2024年11月28日
    00
  • 在使用 uni-app 开发小程序或移动端应用时 title image失效问题

    在使用 uni-app 开发小程序或移动端应用时,若发现 分享的标题(title) 和 图片(image) 配置无效,可能是由于配置错误、平台限制或代码逻辑问题。以下是排查和解决问题的详细指南: 1. 确保正确使用分享 API onShareAppMessage(自定义转发) 确保在 pages 的页面代码中正确使用了 onShareAppMessage 方…

    2024年11月25日
    00
  • wordpress 蜘蛛记录插件的功能记录网站的所有访问记录

    要在 WordPress 网站上实现类似的功能,通常你需要开发一个 WordPress 插件。以下是一步步创建一个插件的指南,它可以记录访问者的访问记录,区分搜索引擎蜘蛛,并保存访客的 IP 地址。 1. 创建插件目录和文件 2. 插件文件结构 插件的文件结构大概如下: 3. 编写插件代码 在 visitor-tracker.php 文件中,添加以下代码: …

    2024年11月22日
    00
  • 云服务器的 宝塔面板 中配置 PHP 支持 WebP 格式的图片

    在云服务器的 宝塔面板 中配置 PHP 支持 WebP 格式的图片,主要是通过安装或启用 GD 库或者 ImageMagick 来实现 WebP 图片的处理支持。下面是一步步的操作方法:1. 确保服务器已经安装 WebP 扩展WebP 格式的支持需要 PHP 依赖于 GD 库或 ImageMagick 库。如果你使用的是 PHP 7.0 及以上版本,通常 G…

    2024年11月29日
    00
  • uniapp基于vue3,element plus组件库以及axios通讯开发

    在 uniapp 前端开发中,使用 Vue3、Element Plus 组件库和 Axios 进行通讯是一种常见的组合。下面是一个简单的步骤和实践指南,帮助你更好地使用这些工具进行开发。1. 安装和配置 Vue3 和 Element Plus首先,确保你已经安装了 uniapp 项目,并且设置好相关依赖。在项目中,安装 Element Plus 组件库以便在…

    2024年11月27日
    00
  • 使用 Redis 和 Spring Cache 实现基于注解的缓存功能

    Spring Cache 提供了一种简单的方法来通过注解对方法的返回结果进行缓存。结合 Redis,可以构建一个高效的分布式缓存解决方案。以下是详细实现步骤: 1. 引入必要的依赖在 pom.xml 文件中添加以下依赖(适用于 Spring Boot 项目): 2. 配置 Redis在 application.yml 或 application.proper…

    2024年12月1日
    00
  • 在开发 Angular 项目时,使用 RangeSlider 控件时的常见问题

    在开发 Angular 项目时,使用 RangeSlider 控件时,可能会遇到一些常见的问题。以下是一些问题及其解决方案:1. 滑块值不更新问题描述:当用户拖动滑块时,滑块的值不会实时更新,或者显示的值不正确。解决方案:确保绑定的模型是双向绑定,使用 ngModel 或者监听 input 事件来确保滑块值能实时更新。例如: 确保你已经导入了 FormsMo…

    2024年11月27日
    00
  • 在 uni-app 小程序中,使用 uni.getLocation 获取用户位置信息等

    在 uni-app 小程序 中,使用 uni.getLocation 获取用户位置后,可以通过 腾讯地图 API 将经纬度转化为详细的地址信息(如省、市、区、街道等)。以下是完整的操作流程: 1. 前置准备:开通腾讯地图 API 服务注册腾讯位置服务账号:登录 腾讯位置服务官网。创建项目并获取 Key:进入 控制台,创建新应用,选择 小程序。获取生成的 ke…

    2024年11月26日
    00
  • 在Spring Boot中,利用AOP(Aspect-Oriented Programming)实现操作日志记录。

    在Spring Boot中,利用AOP(Aspect-Oriented Programming)结合自定义注解,可以优雅地实现操作日志记录。这种方式不仅解耦了业务逻辑与日志记录功能,还能让代码更简洁、可维护性更高。 以下是实现步骤: 1. 项目依赖 在Spring Boot项目中,确保以下依赖已存在(默认spring-boot-starter-aop随spr…

    2024年11月23日
    00
  • 在Java中 ArrayList 和 LinkedList 实现 List 接口类

    在Java中,ArrayList 和 LinkedList 都是实现了 List 接口的类,但它们在底层实现和使用场景上有显著的区别。以下是它们的主要区别: 1. 底层实现ArrayList基于动态数组实现。元素是连续存储的,每个元素都可以通过索引直接访问。LinkedList基于双向链表实现。每个元素由节点(Node)存储,节点包含数据和前后节点的引用。 …

    2024年12月2日
    00
  • Solving the Makefile Missing Separator Stop Error in VSCode ……

    在 VSCode 中处理 Makefile 的 missing separator. Stop 错误,通常是因为 Makefile 中的命令行前没有用Tab 键缩进,而使用了空格。Makefile 规定,配方(recipe)中的每个命令行必须以Tab 键开头,而不是空格。 解决方法1. 检查 Makefile 的缩进打开报错的 Makefile 文件。找到出…

    2024年12月2日
    00
  • 在 .NET 8 框架中使用 Web API 项目并通过引用 SqlSugar ORM 来操作数据库

    在 .NET 8 框架中使用 Web API 项目并通过引用 SqlSugar ORM 来操作数据库,可以遵循以下步骤: 1. 准备工作确保已安装 .NET 8 SDK 和 SqlSugar NuGet 包。创建或打开现有的 Web Core API 项目。安装 SqlSugar NuGet 包: 2. 配置 SqlSugar在 Web API 项目中配置 …

    2024年11月27日
    00
  • Android Studio 2024 版本安装 SDK、Gradle环境配置

    在 Android Studio 2024 中,配置 SDK 和 Gradle 环境是非常重要的步骤,确保开发环境能正确运行、编译和构建你的 Android 项目。以下是详细的安装和配置步骤。 1. 安装 Android Studio 2024 首先,你需要安装 Android Studio 2024。你可以从 Android Studio 官网 下载最新版…

    2024年11月23日
    00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

在线咨询: QQ交谈

邮件:723923060@qq.com

关注微信