node和express實現mySql模糊搜尋

語言: CN / TW / HK

本文已參與「新人創作禮」活動,一起開啟掘金創作之路。

node和express實現mySql模糊搜尋

作為一名前端開發 少了後端總覺的缺點什麼 於是也在學習的 express的路上。

1.實現方式

實現服務端的搜尋主要是通過呼叫mySql語句,去查詢資料庫中想要的資料。 思路:

  1. 前端傳給後端引數

  2. 後端拿到引數

  3. 拿到引數後把引數拼接成可以使用的mysql語句

  4. express返回響應結果返回給前端

具體是上面四步,怎麼實現呢 ? 一步一步來。

1.前端傳給後端引數

在這裡插入圖片描述

在這裡this.queryInfo 就是前端需要傳給後端的引數。

2.後端拿到引數

在這裡插入圖片描述

紅框顯示就是後端拿到前端穿過來的引數

3.拿到引數後把引數拼接成可以使用的mysql語句

在這裡插入圖片描述

拿到引數後 拿到所有的引數 拼接成最後的sql語句 下面sql語句就能拿到 電話號碼帶11的所有手機號碼。

select * from userlist where 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.body console.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;//暴露這個路由 ```

客戶端程式碼

```

```