const express = require('express'); const bodyParser = require('body-parser'); const app = express(); const mysql = require('mysql'); app.use(bodyParser.json()); // 解析JSON请求体 // 创建数据库连接池 const pool = mysql.createPool({ host: 'localhost', user: 'root', password: '123456', database: 'class_system' }); // 处理GET请求的根路径,查询数据库并返回结果,显然为了请求的通用性,则我的查询语句由小程序端完整生成,服务端只负责查询语句的中转 app.get('/', (req, res) => { pool.query(req.query.query, (error, results, fields) => { if (error) { console.error(error); return res.status(500).send('Internal Server Error'); } res.json(results); // 返回查询结果 }); }); // 处理POST请求,用于数据写入数据库 app.post('/insert', (req, res) => { const { table, columns, values } = req.body; // 从请求体获取数据 // 构建SQL插入语句 const placeholders = columns.map(() => '?'); // 原数组映射为新数组,新数组的每个元素均为问号,使用问号作为占位符 //需要用这种方式来赋值,不然字符串的双引号会丢失 const sql = `INSERT INTO \`${table}\` (${columns.join(', ')}) VALUES (${placeholders.join(', ')})`; // 执行SQL插入语句 pool.query(sql, values, (error, results, fields) => { // 返回插入错误的信息 if (error) { console.error(error); return res.status(500).send('Database error'); } // 返回提示信息 res.status(201).json({ message: 'Data inserted successfully', insertId: results.insertId }); }); }); // 处理POST请求,用于在数据库中删除指定ID的数据 app.post('/delete', (req, res) => { const { table, id } = req.body; // 从请求体获取数据 // 构建SQL插入语句 const sql = `DELETE FROM \`${table}\` WHERE id = ${id}`; // 执行SQL插入语句 pool.query(sql, (error, results, fields) => { // 返回插入错误的信息 if (error) { console.error(error); return res.status(500).send('Database error'); } // 返回提示信息 res.status(201).json({ message: 'Data inserted successfully', insertId: results.insertId }); }); }); // 处理POST请求,用于在数据库中修改指定ID的数据 app.post('/modify', (req, res) => { const { table,id,columns, values } = req.body; // 从请求体获取数据 // 构建SQL插入语句 const placeholder = columns.map(() => '?'); // 原数组映射为新数组,新数组的每个元素均为问号,使用问号作为占位符 const placeholders = columns.map((element,index) => element + '=' + placeholder[index]).join(','); //组合成 name1=value1,name2=value2,name3=value3......的形式 const sql = `UPDATE \`${table}\` SET ${placeholders} where id = ${id}`; // 执行SQL插入语句 pool.query(sql, values, (error, results, fields) => { // 返回插入错误的信息 if (error) { console.error(error); return res.status(500).send('Database error'); } // 返回提示信息 res.status(201).json({ message: 'Data inserted successfully', insertId: results.insertId }); }); }); // 启动服务器监听3000端口,并打印启动信息 app.listen(3000, () => { console.log('Server running at http://127.0.0.1:3000'); });