怎么使用nodejs微信小程序连接mysql
时间: 2023-10-24 08:15:11 浏览: 134
使用 Node.js 连接 MySQL 数据库可以使用第三方的 MySQL 驱动程序,如 mysql、mysql2 等。下面以 mysql2 为例,介绍如何使用 Node.js 连接 MySQL 数据库并提供 API 接口供微信小程序调用。
1. 安装 mysql2 驱动程序
使用 npm 安装 mysql2 驱动程序,打开终端或命令行工具,进入项目目录,执行以下命令:
```
npm install mysql2 --save
```
2. 创建数据库和表
在 MySQL 数据库中创建一个名为 `test` 的数据库,然后创建一个名为 `users` 的表,表结构如下:
```
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`age` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
3. 编写 Node.js 代码
在项目目录下创建一个名为 `app.js` 的文件,编写如下代码:
```javascript
const mysql = require('mysql2');
const express = require('express');
const app = express();
// 创建 MySQL 连接池
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'root',
database: 'test',
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0
});
// 查询用户列表
app.get('/users', (req, res) => {
pool.query('SELECT * FROM users', (err, results) => {
if (err) {
res.status(500).send({ error: '查询用户列表失败' });
} else {
res.send(results);
}
});
});
// 添加用户
app.post('/users', (req, res) => {
const name = req.query.name;
const age = parseInt(req.query.age);
if (!name || !age || isNaN(age)) {
res.status(400).send({ error: '参数错误' });
} else {
pool.query('INSERT INTO users SET ?', { name, age }, (err, results) => {
if (err) {
res.status(500).send({ error: '添加用户失败' });
} else {
res.send({ id: results.insertId, name, age });
}
});
}
});
// 启动服务器
app.listen(3000, () => {
console.log('服务器已启动');
});
```
上述代码使用 mysql2 驱动程序连接 MySQL 数据库,提供了 `/users` 接口,用于查询用户列表和添加用户。
4. 启动服务器
在终端或命令行工具中执行以下命令启动服务器:
```
node app.js
```
5. 在小程序中调用 API 接口
在小程序中使用 wx.request() 方法调用服务器端的 API 接口,如下所示:
```javascript
wx.request({
url: 'http://localhost:3000/users',
success(res) {
console.log(res.data); // 打印用户列表
}
});
wx.request({
url: 'http://localhost:3000/users?name=张三&age=18',
method: 'POST',
success(res) {
console.log(res.data); // 打印添加的用户信息
}
});
```
上述代码使用 wx.request() 方法调用服务器端的 `/users` 接口,获取用户列表和添加用户。注意,需要将 `localhost` 替换为服务器的 IP 地址或域名,同时需要保证服务器和小程序在同一局域网中。
阅读全文