node.js+mysql增删改查接口
时间: 2023-07-28 08:10:17 浏览: 158
好的,下面是Node.js和MySQL实现增删改查接口的示例代码:
```javascript
const express = require('express');
const mysql = require('mysql');
const bodyParser = require('body-parser');
const app = express();
// 配置body-parser中间件
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// 创建数据库连接池
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'password',
database: 'test'
});
// 查询数据接口
app.get('/api/select', (req, res) => {
pool.getConnection((err, connection) => {
if (err) {
console.log(err);
res.send({
code: 400,
message: '数据库连接出错'
});
} else {
connection.query('SELECT * FROM users', (err, results) => {
if (err) {
console.log(err);
res.send({
code: 400,
message: '查询数据出错'
});
} else {
res.send({
code: 200,
data: results
});
}
connection.release();
});
}
});
});
// 新增数据接口
app.post('/api/insert', (req, res) => {
pool.getConnection((err, connection) => {
if (err) {
console.log(err);
res.send({
code: 400,
message: '数据库连接出错'
});
} else {
const { name, age, gender } = req.body;
connection.query('INSERT INTO users (name, age, gender) VALUES (?, ?, ?)', [name, age, gender], (err, results) => {
if (err) {
console.log(err);
res.send({
code: 400,
message: '新增数据出错'
});
} else {
res.send({
code: 200,
message: '新增数据成功'
});
}
connection.release();
});
}
});
});
// 修改数据接口
app.put('/api/update', (req, res) => {
pool.getConnection((err, connection) => {
if (err) {
console.log(err);
res.send({
code: 400,
message: '数据库连接出错'
});
} else {
const { name, age, gender, id } = req.body;
connection.query('UPDATE users SET name = ?, age = ?, gender = ? WHERE id = ?', [name, age, gender, id], (err, results) => {
if (err) {
console.log(err);
res.send({
code: 400,
message: '修改数据出错'
});
} else {
res.send({
code: 200,
message: '修改数据成功'
});
}
connection.release();
});
}
});
});
// 删除数据接口
app.delete('/api/delete', (req, res) => {
pool.getConnection((err, connection) => {
if (err) {
console.log(err);
res.send({
code: 400,
message: '数据库连接出错'
});
} else {
const { id } = req.body;
connection.query('DELETE FROM users WHERE id = ?', [id], (err, results) => {
if (err) {
console.log(err);
res.send({
code: 400,
message: '删除数据出错'
});
} else {
res.send({
code: 200,
message: '删除数据成功'
});
}
connection.release();
});
}
});
});
// 监听端口
app.listen(3000, () => {
console.log('服务器已启动,端口:3000');
});
```
这里使用了`body-parser`中间件来解析POST请求的请求体,使用了MySQL的连接池来管理数据库连接,防止频繁创建和销毁连接导致的性能损失。在每个接口中,都先从连接池中获取一个连接,然后执行相应的SQL语句,并根据执行结果返回不同的响应。
阅读全文