IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> node+vue搜索和分页功能实现 -> 正文阅读

[JavaScript知识库]node+vue搜索和分页功能实现

前端代码

<template>
  <div class="main-box">
  
    <!-- 卡片区 -->
    <el-card>
      <!-- 搜索 -->
      <el-input
        placeholder="请输入用户名"
        v-model="goodQueryInfo.key_word"
        clearable
        class="input-with-select"
        style="width: 600px"
      >
        <el-button
          slot="append"
          icon="el-icon-search"
          @click="orderList"
        ></el-button>
      </el-input>
    
       <!-- 分页区域 -->
            <el-pagination
                @size-change="handleSizeChange"
                @current-change="handleCurrentChange"
                :current-page="goodQueryInfo.currentPage"
                :page-sizes="[2, 4, 6, 8]"
                :page-size="goodQueryInfo.pageSize"
                layout="total, sizes, prev, pager, next, jumper"
                :total="total">
            </el-pagination>
    </el-card>
  </div>
</template>
<script>
export default {
  data() {
    return {
          // 初始化参数
            goodQueryInfo: {
                key_word: "",
                currentPage: 1,
                pageSize: 2
            },
            total: 0,
       
  },
    created() {
      this.orderList()
  },
  methods: {
        // 分页
        handleSizeChange(val) {
            this.currentPage = 1
            this.goodQueryInfo.pageSize = val
            this.orderList()
        },
        handleCurrentChange(val) {
            this.goodQueryInfo.currentPage = val
            this.orderList()
        },


    // 获取数据
    async orderList(){
        var r=await this.$http.get('show',{ params: this.goodQueryInfo })
        console.log(r);
        if(r.data.code==200){
            this.tableData=r.data.data,
            this.total=r.data.total
        }
    }
  },

};
</script>
<style lang="less" scoped>
.el-card {
  margin-top: 30px;
}
.main-box {
  overflow: auto;
}
</style>

后端接口代码

const express = require("express")
const {order}=require('../db/model')
const orderRouter = express.Router()

orderRouter.get("/show", async (req, res) => {
    let key_word = req.query.key_word
    let currentPage = parseInt(req.query.currentPage)
    let pageSize = parseInt(req.query.pageSize)
    // 如果有关键字,搜索关键字并进行分页
    if ( key_word ) {
        const orderData = await order.find( { "bianhao": { $regex: key_word }} , {}, { skip: ( (currentPage - 1 ) * pageSize ), limit: pageSize })
        const totalData = await order.find( { "bianhao": { $regex: key_word }} )
        res.json ({
            msg: "ok",
            code: 200,
            data: orderData,
            total: totalData.length
    })
    // 如果没有关键字,分页正常显示
    }else {
        const orderData = await order.find({},{}, { skip: ( (currentPage - 1 ) * pageSize ), limit: pageSize} )
        const totalData = await order.find({})
        res.json ({
            msg: "ok",
            code: 200,
            data: orderData,
            total: totalData.length
        })
    }
})

module.exports=orderRouter

$regex运算符通过正则表达式来匹配模糊查询

语法

{ < field >: { $ regex : / pattern / , $ options : ‘’ } }
{ < field >: { $ regex : ‘pattern’ , $ options : ‘’ } }
{ < field > : { $ regex : / pattern / < options > } }

示例

查询以某字段开头的文档

db.member.find({"name":{$regex:/^XXX/}})

查询以某字段为结尾的文档

db.member.find({"name":{$regex:/XXX^/}})

查询忽略大小写

db.member.find({"name":{$regex:/XXX/i}})

某文档包含某字段的模糊查询

db.member.find({"name":{ $regex:/字段名/ }})

选项描述语法限制
i不区分大小写以匹配大小写的情况。
m对于包含锚点的模式(即^,对于开始, $结束),在每行的开头或结尾处匹配具有多行值的字符串。如果没有此选项,这些锚点将在字符串的开头或结尾处匹配,如果模式不包含锚点或者字符串值没有换行符(例如\n),则该m选项无效。
x$regex除非转义或包含在字符类中,否则“扩展”功能可忽略模式中的所有空格字符。 此外,它会忽略中间的字符,包括未转义的hash / pound(#)字符和下一个新行,以便您可以在复杂模式中包含注释。这仅适用于数据字符; 空格字符可能永远不会出现在模式中的特殊字符序列中。 该x选项不影响VT字符的处理(即代码11)。
?
需要$regex与$options语法
s允许点字符(即.)匹配包括换行符在内的所有字符。有关示例,请参阅使用。点匹配新线。需要$regex与$options语法

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-10 11:48:02  更:2022-05-10 11:48:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 6:42:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码