NodeJS+Bmob条件查询说明

今天写了一下NodeJS+Bmob条件查询的函数,最后实现了在搜索框中输入关键字,可以弹出对应的数据,该函数代码如下:

新学到的函数

str.slice(start,end)

  • 可提取字符串的某个部分,并以新的字符串返回被提取的部分,返回值是string类型,如果数据库是其他类型要注意类型转换。
  • start:要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
  • end:紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。
  • 具体参考该链接

类型转换函数

  • Boolean:转化为bool类型
  • parseInt:转化为Int类型
  • 具体参考该链接

Request条件查询

使用request进行条件查询,参考该网址,主要在url上做功夫,条件查询就是在查询所有数据的请求上通过where参数的形式对查询对象做出约束,只返回我们功期望返回的值。where参数的值应该是JSON编码过的,就是说,如果你查看真正被发出的URL请求,它应该是先被JSON编码过,然后又被URL编码过。使用where参数最简单的方式就是包含应有的key的值。举例说,如果我们想要得到Lily的记录,那该请求的URL为:

这是未经编码前我们看到的url,我们需要对URL进行URL编码,编码的的结果为:

不同的语言开发环境有不同的URL编码接口,如果是使用如Postman这类工具来进行测试的,可以使用一些在线的url编解码工具进行编码后再发送请求,这里推荐一个

在Javascript中,因为我们封装好的keywords是json类型,所以要注意先将keywords转为string类型,再将string类型的参数通过encodeURI函数转码,具体如下:

最后再request调用请求即可。

查询功能说明

  1. 无关键字直接查询:只能查询用户学号,例如输入16210720026可以查到我的信息
  2. 有关键字查询:
    • u/U+学号:根据学号查询对应用户。示例:u16210720026;结果:得到我的信息
    • k/K+类型:查看邮箱验证的用户和未验证的用户。示例:k0返回未验证用户,k1返回已验证用户
    • n/N+姓名:根据姓名(微信名)查看对应的用户。示例:n达达;结果:得到我的信息。
    • v+次数n:返回违规次数为n的用户。示例:v2;结果:返回所有违规两次的学生信息。
    • V+次数n:返回违规次数大于等于n的用户。示例:v1;结果:返回所有违规次数大于等于1的用户信息。
    • e/E+邮箱:根据邮箱查看对应的用户。示例:16210720026@fudan.edu.cn;结果:得到我的个人信息。