微信小程序中,通过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

相关推荐

  • 解决登录Google账号,手机上Google账号无法验证问题?

    遇到 Google账号无法验证 的问题时,通常是因为以下几个原因之一: 以下是一些解决方法: 1. 检查手机网络和信号确保手机信号和网络连接稳定,有时验证码可能由于网络问题无法及时收到。如果你使用的是 短信验证,确保手机信号良好,短信接收正常。如果使用的是 Google 提供的 Google Authenticator 应用,确保应用正常工作,并且时间同步(…

    2024年11月28日
    00
  • 微信小程序RequestTask.onChunkReceived 监听分块数据接收事件接口

    在微信小程序中,RequestTask.onChunkReceived 是用于监听分块数据接收事件的接口。此功能适用于需要逐步接收大数据(例如流媒体、文件分块等)的场景,可以显著提升大文件传输的性能和用户体验。 以下是详细介绍和使用方法: 1. 功能说明用途:监听通过 wx.request 或 wx.downloadFile 发起的请求过程中,每次接收到的数…

    2024年11月28日
    00
  • 把一个矩形div变成一个直角三角形

    要将一个矩形 div 变成一个直角三角形,可以通过 CSS 的一些属性进行实现。具体的方法是利用 border 属性来隐藏矩形的部分,留下一个直角三角形的形状。以下是实现的步骤:CSS 方法: 解释:width 和 height 设置为 0:通过将 div 的宽度和高度设置为 0,实际上把矩形的主体部分隐藏了。border-left 和 border-bot…

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

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

    2024年11月28日
    00
  • 实现“鼠标点击器外挂”,模拟快速点击或者自动化点击的工具

    实现一个“鼠标点击器外挂”,通常是指模拟快速点击或者自动化点击的工具。以下是一个实现的基本思路和代码示例,适合用于演示或学习目的。 功能描述自动模拟鼠标点击(单击或双击)。用户可以设置点击间隔和总点击次数。提供启动和停止按钮,方便控制。 示例实现HTML CSS (style.css) JavaScript (script.js) 功能实现说明用户输入:用户…

    2024年11月30日
    00
  • 在使用 VS Code 和 Keil 协同开发 STM32 程序

    在使用 VS Code 和 Keil 协同开发 STM32 程序时,可以利用 Keil 强大的编译器 和 VS Code 的高效代码编辑功能,结合起来提高开发效率。以下是实现协同开发的详细步骤: 前置准备安装 Keil确保已安装 Keil MDK-ARM,并配置好开发环境。Keil 下载地址:Keil 官方网站安装 VS Code下载并安装最新版本的 VS …

    2024年12月1日
    00
  • 理解 HTML、HTML5 和 “H5” 区别的重要性

    HTML & HTML5 & H5 的区别在构建现代网页时,理解 HTML、HTML5 和 “H5” 的区别是非常重要的。以下是它们的概念和主要区别: 1. HTML(超文本标记语言)定义HTML 是 HyperText Markup Language 的缩写,即超文本标记语言,用于定义网页内容的结构和含义。特性提供基…

    2024年12月2日
    00
  • 使用uni-app微信小程序生成邀请码邀请好友注册

    在 uni-app 中实现微信小程序的邀请功能,可以通过生成邀请码来邀请好友注册。这个过程通常包括生成唯一的邀请码、分享链接生成二维码,以及接收邀请并使用邀请码完成注册等步骤。下面详细介绍如何在 uni-app 中实现这个功能。 1. 设计邀请码生成规则 首先,需要设计邀请码的生成规则。一般来说,邀请码是一个随机生成的字符串或者是与用户ID相关联的字符串。为…

    2024年11月23日
    00
  • 安卓用微信作为第三方登录,登录授权界面调用

    在 Android 应用中实现微信第三方登录,可以通过调用微信提供的开放平台 SDK 来完成。以下是实现微信登录授权界面的完整步骤: 1. 准备工作 注册微信开放平台应用 下载微信 SDK 2. 项目配置 引入微信 SDK 将 SDK 文件添加到项目的 libs 和 jniLibs 目录下: 在 build.gradle 中添加依赖: 配置权限 在 Andr…

    2024年12月3日
    00
  • Spring Boot 项目中对接海康摄像头的视频流播放

    在 Spring Boot 项目中对接海康摄像头的视频流播放,通常需要利用摄像头的 RTSP 协议,将实时视频流解码并转发到前端以实现播放功能。以下是具体实现步骤: 1. 项目准备 前置条件 RTSP 流地址格式 海康摄像头的 RTSP 流地址格式通常为: 例如: 2. 后端实现视频流转发 为了在后端转发视频流到前端,我们需要解码 RTSP 流并将其转为适配…

    2024年11月24日
    00
  • 基于 Spring Boot 框架实现微信支付接口调用及回调功能

    实现微信支付接口调用及回调功能,以下是完整的步骤及代码实现,基于 Spring Boot 框架。 1. 微信支付开发准备 开通微信支付 配置 API 安全密钥 前往商户平台的【账户设置】-【API安全】中配置 API 密钥。 2. 集成依赖 在 Spring Boot 项目中添加 HTTP 客户端依赖,例如 RestTemplate 或 OkHttp。也可用…

    2024年11月23日
    00
  • Redis中如何使用lua脚本redis与lua的相互调用方法

    在 Redis 中,Lua 脚本 提供了一种强大的方式来执行原子操作,可以在 Redis 服务器上直接执行 Lua 代码,从而避免了多次网络往返和保证操作的原子性。Redis 内置了对 Lua 脚本的支持,通过 EVAL 命令来执行脚本,EVALSHA 则用于执行已经加载到 Redis 服务器的脚本。1. Redis 与 Lua 脚本的基本交互1.1 基本的…

    2024年11月28日
    00
  • Unity 项目升级URP/HDRP渲染管线时如何解决材质丢失问题

    在 Unity 项目中升级到 URP(通用渲染管线) 或 HDRP(高清渲染管线) 后,材质丢失是一个常见问题。这通常是因为原来的材质或着色器不兼容新渲染管线,需要手动调整或重新配置。以下是详细的解决方法: 1. 理解渲染管线的变化 2. 自动转换材质(官方工具) Unity 提供了从 Built-in 渲染管线迁移到 URP 或 HDRP 的官方工具,可以…

    2024年11月25日
    00
  • 在 Android 中 Matrix 实现图像的缩放和裁剪将 Glide 图像从 fitCenter 转换为 centerCrop

    在 Android 中,Matrix 可以用来实现图像的缩放和裁剪逻辑。要将 Glide 图像从 fitCenter 转换为 centerCrop,需要通过 Matrix 计算变换逻辑。以下是使用 Kotlin 实现的方法:实现步骤计算目标变换矩阵:根据目标宽高比,判断是否需要横向或纵向裁剪。设置 Matrix:使用 Matrix 执行缩放和平移操作。应用到…

    2024年12月3日
    00
  • XiYan-SQL 是一种多生成器集成的 Text-to-SQL框架,专注于将自然语言查询转换为结构化查询语言

    XiYan-SQL 是一种多生成器集成的 Text-to-SQL(文本转 SQL)框架,专注于将自然语言查询转换为结构化查询语言(SQL),从而高效地与数据库交互。以下是该框架的主要特点、技术原理及其应用场景的解析: 1. XiYan-SQL 的核心特点 2. 核心技术原理 3. 应用场景 4. XiYan-SQL 的优势 5. 示例 输入: 自然语言查询:…

    2024年12月5日
    00

发表回复

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

联系我们

在线咨询: QQ交谈

邮件:723923060@qq.com

关注微信