node和express实现mySql模糊搜索

这篇博客介绍了如何使用Node.js和Express实现MySQL数据库的模糊搜索功能。前端通过传递参数给后端,后端接收参数并构造相应的SQL查询语句,然后利用Express将查询结果响应回前端进行数据展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

node和express实现mySql模糊搜索

作为一名前端开发 少了后端总觉的缺点什么 于是也在学习的 express的路上。

1.实现方式

实现服务端的搜索主要是通过调用mySql语句,去查询数据库中想要的数据。 思路:

1.前端传给后端参数2.后端拿到参数3.拿到参数后把参数拼接成可以使用的mysql语句4.express返回响应结果返回给前端具体是上面四步,怎么实现呢 ? 一步一步来。

1.前端传给后端参数

在这里this.queryInfo 就是前端需要传给后端的参数。

2.后端拿到参数

红框显示就是后端拿到前端穿过来的参数

3.拿到参数后把参数拼接成可以使用的mysql语句

拿到参数后 拿到所有的参数 拼接成最后的sql语句 下面sql语句就能拿到 电话号码带11的所有手机号码。

 select * from userlistwhere phone like "%11%"sql 

4.express返回响应结果

express 通过回调 返回查询结果给前端使用

mysql返回给express 的数据 express通过回调返回给前端 ,前端拿到这个数据去渲染表格。

最后贴下所有代码 希望对你有用

服务端代码

 var express = require("express");
var router = express.Router();
var sqlMap = require('../../config/sqlMap');
var conn = require('../../config/db');
var verify = require('../../utils/utils');

router.post('/all', function (req, res) {if (req.header.token || verify(req.headers.token).code === '606') {res.json({code: 401,message: '登录信息已过期,请重新登录'})return}// let sql = sqlMap.item.findAllInfo;let sql = 'select * from userlist ';var params = req.bodyconsole.log(params, '参数')let arr = []for (var key in params) {arr.push(params[key])}console.log(arr, '000')if (params.username !== '') {if (arr[0] !== '') {sql += `where username like "%${params.username}%" `;} else {sql += '';}}if (params.phone !== '') {if (arr[0] === '') {sql += ` where phone like "%${params.phone}%" `;} else {sql += ` and phone like "%${params.phone}%" `;}}if (params.account !== '') {if (arr[0] === '' && arr[1] === '') {sql += ` where account like "%${params.account}%" `;} else {sql += ` and account like "%${params.account}%" `;}}console.log(sql, 'sql')conn.query(sql, (err, result) => {if (err) {console.log(err)}if (result) {res.json({code: 200,data: result})}})

})
module.exports = router;//暴露这个路由 

客户端代码

 <template><div><el-card><el-form:inline="true":model="queryInfo"ref="queryInfoRef"class="demo-form-inline"><el-form-item label="用户名"><el-inputv-model="queryInfo.username"placeholder="用户名"></el-input></el-form-item><el-form-item label="电话"><el-input v-model="queryInfo.phone" placeholder="电话"></el-input></el-form-item><el-form-item label="类型"><el-select v-model="queryInfo.account" placeholder="类型"><el-option label="admin" value="admin"></el-option><el-option label="admin1" value="admin1"></el-option><el-option label="admin2" value="admin2"></el-option></el-select></el-form-item><el-form-item><el-button type="primary" @click="onSearch">查询</el-button><el-button @click="onReset('queryInfoRef')">重置</el-button></el-form-item></el-form><el-table :data="userList" border style="width: 100%"><el-table-column fixed prop="username" label="用户名" min-width="150"></el-table-column><el-table-column prop="phone" label="电话" min-width="120"></el-table-column><el-table-column prop="account" label="account" min-width="120"></el-table-column><el-table-column fixed="right" label="操作" min-width="100"><template slot-scope="scope"><el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button><el-button type="text" size="small">编辑</el-button></template></el-table-column></el-table><el-pagination layout="prev, pager, next" :total="this.userList.length"> </el-pagination></el-card></div>
</template>

<script>
export default {data() {return {userList: [],queryInfo: {username: "",phone: "",account: ""}};},mounted() { this.getList()},methods: {getList(){this.$ajax.post("/item/all",this.queryInfo).then(res => {this.userList = res.data;}).catch(err => {console.log(err);});},onSearch() {this.getList()console.log(this.queryInfo, "000");},onReset(resetName) {for (var key in this.queryInfo) {this.queryInfo[key] = "";this.getList()}}}
};
</script> 
### 回答1: 要使用Node.jsMySQL实现搜索功能,需要以下几个步骤: 1. 首先,确保你已经安装了Node.jsMySQL,并在你的项目中安装了mysql包(可以使用npm install mysql命令进行安装)。 2. 在你的Node.js代码中,首先需要创建与MySQL数据库的连接。使用mysql包的createConnection方法来创建连接,并传入数据库的主机名、用户名、密码数据库名等信息。 3. 使用Connection对象的connect方法来连接到数据库。 4. 在连接成功后,可以使用Connection对象的query方法来执行SQL查询语句。例如,如果要实现一个简单的搜索功能,可以执行类似于SELECT * FROM table_name WHERE column_name LIKE '%search_keyword%'的查询语句,其中table_name是你要搜索的表名,column_name是你要搜索的列名,search_keyword是你要搜索的关键字。 5. 查询结果会以一个数组的形式返回给你。你可以对查询结果进行进一步的处理,例如将结果展示在网页上或者进行其他操作。 6. 最后,记得关闭与数据库的连接,使用Connection对象的end方法即可。 总结来说,要使用Node.jsMySQL实现搜索功能,你需要创建数据库连接、执行查询语句、处理查询结果,并在最后关闭与数据库的连接。 ### 回答2: 使用Node.js结合MySQL数据库实现搜索功能的步骤如下: 1. 首先,需要安装相关的依赖包。在项目根目录下运行以下命令安装必要的依赖包: ``` npm install mysql express ``` 2. 创建一个express应用并引入mysql模块: ```javascript const express = require('express'); const mysql = require('mysql'); const app = express(); ``` 3. 创建MySQL数据库连接: ```javascript const connection = mysql.createConnection({ host: 'localhost', user: 'root', // 数据库用户名 password: 'password', // 数据库密码 database: 'mydatabase' // 数据库名称 }); // 连接数据库 connection.connect((err) => { if (err) { console.error('数据库连接失败: ', err); } else { console.log('数据库连接成功'); } }); ``` 4. 创建搜索路由: ```javascript app.get('/search', (req, res) => { const searchTerm = req.query.term; // 获取搜索关键词 // 查询数据库 connection.query(`SELECT * FROM mytable WHERE column LIKE '%${searchTerm}%'`, (error, results, fields) => { if (error) { console.error('搜索出错: ', error); } else { res.send(results); // 将查询结果返回给客户端 } }); }); ``` 5. 启动服务器并监听端口: ```javascript app.listen(3000, () => { console.log('服务器已启动,正在监听3000端口'); }); ``` 将以上代码保存为一个文件(例如`app.js`),在终端执行`node app.js`启动服务器。然后,可以通过访问`http://localhost:3000/search?term=关键词`进行搜索,服务器会返回相应的结果。 注意,上述示例代码仅提供了基本的搜索功能,实际使用时需要根据具体需求进行修改优化,例如处理查询参数、数据库表结构设计、结果过滤等。 ### 回答3: 在使用Node.jsMySQL实现搜索功能时,可以按照以下步骤进行操作: 1. 安装配置MySQL数据库:首先,需要在本地或远程服务器上安装MySQL数据库,并创建一个用于存储数据的数据库。然后,使用适当的用户名密码配置数据库连接。 2. 安装mysql模块:使用Node.js的包管理器(npm),可以安装mysql模块,该模块将允许我们与MySQL数据库进行交互。在终端中,运行以下命令进行安装:npm install mysql 3. 连接到数据库:首先,需要在Node.js文件中引入mysql模块,并使用创建的用户名、密码数据库信息创建一个数据库连接。例如:var mysql = require('mysql'); var connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'mydatabase' }); connection.connect(); 4. 编写搜索功能的API端点:在Node.js文件中,编写一个处理搜索请求的API端点。该端点应该接收来自前端的搜索关键字,并使用该关键字在数据库中查询匹配的结果。 5. 执行数据库查询:使用mysql模块提供的query方法,可以执行数据库查询。在搜索API端点中,构造SQL查询语句,使用关键字进行模糊匹配,并执行查询。例如:connection.query('SELECT * FROM products WHERE name LIKE ?', ['%' + keyword + '%'], function(error, results, fields) { if (error) throw error; // 处理查询结果 }); 6. 处理查询结果:在query方法的回调函数中,可以处理查询结果。根据具体需求,可以将结果发送回前端,或在后端进行进一步处理。 7. 关闭数据库连接:在搜索功能完成后,不要忘记关闭数据库连接,以释放资源。例如:connection.end(); 通过上述步骤,可以使用Node.jsMySQL实现搜索功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值