在微信小程序中,通过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. 注意事项
- 跨域问题:本示例已通过
cors
解决跨域问题。如果有其他跨域需求,可根据实际情况调整。 - 数据库配置:确保数据库的用户名、密码、端口配置正确。
- 接口安全:生产环境中需要增加身份验证(如 JWT)、数据校验等安全措施。
- 环境配置:在正式环境中,建议使用 HTTPS 并部署到服务器上。
这样,小程序通过 Node.js 和 MySQL 实现增删改查功能就完成了!
发布者:myrgd,转载请注明出处:https://www.object-c.cn/5143