酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

通过express实现一个可以携带参数的数据查询接口 具体要求: 1、创建数据表,具体数据内容可以自己决定,表中至少需要有自增id字段和名称字段 2、数据查询接口需要实现可以通过id字段精准查询,也可以通过名称模糊查询 3、查询返回给前端的结果必须为json格式,并且解决跨域问题 请列出express源代码和数据表的sql文件 数据表的sql文件

数据库表的SQL文件如下所示: ```sql CREATE TABLE `data` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; ``` Express的源代码如下所示: ```javascript const express = require('express'); const mysql = require('mysql'); const app = express(); // MySQL连接配置 const connection = mysql.createConnection({ host: 'localhost', user: 'root', // 替换为自己的MySQL用户名 password: '123456', // 替换为自己的MySQL密码 database: 'test' // 替换为自己的数据库名 }); // 连接到MySQL数据库 connection.connect((err) => { if (err) throw err; console.log('Connected to MySQL database'); }); // 解决跨域问题 app.use((req, res, next) => { res.setHeader('Access-Control-Allow-Origin', '*'); res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE'); res.setHeader('Access-Control-Allow-Headers', 'Content-Type'); next(); }); // 查询接口 app.get('/data', (req, res) => { const id = req.query.id; const name = req.query.name; let query = ''; if (id) { query = `SELECT * FROM data WHERE id=${id}`; } else if (name) { query = `SELECT * FROM data WHERE name LIKE '%${name}%'`; } else { query = 'SELECT * FROM data'; } connection.query(query, (err, results) => { if (err) throw err; res.json(results); }); }); // 启动服务器 app.listen(3000, () => { console.log('Server is running on port 3000'); }); ``` 注意事项: 1. 需要先安装`express`和`mysql`模块:`npm install express mysql` 2. 在代码中的连接配置部分,需要根据自己的MySQL服务器信息进行调整。 3. 数据表的名称为`data`,可以根据需要进行修改,但需要在代码中对应修改查询语句。 4. 运行该代码后,可以通过`http://localhost:3000/data`进行数据查询。 5. 可以通过URL的查询参数进行条件查询,如`http://localhost:3000/data?id=1`可以精确查询ID为1的数据,`http://localhost:3000/data?name=ABC`可以模糊查询名称包含"ABC"的数据。 [2024-12-08 14:43:26 | AI写代码神器 | 1299点数解答]

相关提问