123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- /**
- * 查询类
- @example
- // 查询指定教练,修改价格
- let query = new CloudQuery("Tutor");
- let tutor = await query.get("imkGFr6Ztj");
- console.log('tutor', tutor)
- tutor.set({
- price: 199
- })
- tutor = await tutor.save()
- // 条件查询:价格大于60
- let query2 = new CloudQuery("FoodMenu");
- query2.lessThan("price", 60);
- // query2.greaterThan("price", 20);
- let foodList = await query2.find();
- console.log("foodList", foodList)
- // 条件查询:性别等于女
- let query3 = new CloudQuery("Tutor");
- query3.equalTo("gender", "女");
- let tutorList = await query3.find();
- console.log("tutorList", tutorList);
- */
- const { CloudObject } = require("./cloud-object")
- class CloudQuery {
- className
- queryParams = {
- where: {}
- }
- constructor(className) {
- this.className = className
- }
- async get(objectId) {
- let res = await fetch(`http://dev.fmode.cn:1337/parse/classes/${this.className}/${objectId}?`, {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
- "x-parse-application-id": "dev"
- },
- "referrer": "http://localhost:4040/",
- "referrerPolicy": "strict-origin-when-cross-origin",
- "body": null,
- "method": "GET",
- "mode": "cors",
- "credentials": "omit"
- });
- let data = await res.json()
- let dataObj = new CloudObject(this.className);
- dataObj.objectId = data.objectId
- dataObj.set(data)
- console.log(data, dataObj)
- return dataObj
- }
- equalTo(key, value) {
- this.queryParams.where[key] = value
- }
- lessThan(key, value) {
- this.queryParams.where[key] = { "$lt": value }
- } g
- greaterThan(key, value) {
- this.queryParams.where[key] = { "$gt": value }
- }
- async find() {
- // where={%22price%22:{%22$gt%22:60}}
- let whereStr = ``
- if (Object.keys(this.queryParams.where)?.length) {
- whereStr = `where=` + JSON.stringify(this.queryParams.where)
- }
- let url = `http://dev.fmode.cn:1337/parse/classes/${this.className}?${whereStr}`
- console.log(url)
- let res = await fetch(url, {
- "headers": {
- "accept": "*/*",
- "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
- "if-none-match": "W/\"b2-UccTNjvsEYMR2Waro9KVbWJiRJs\"",
- "x-parse-application-id": "dev"
- },
- "referrer": "http://localhost:4040/",
- "referrerPolicy": "strict-origin-when-cross-origin",
- "body": null,
- "method": "GET",
- "mode": "cors",
- "credentials": "omit"
- });
- let data = await res.json()
- let list = data.results
- list = list.map(item => {
- let dataObj = new CloudObject(this.className);
- dataObj.objectId = item.objectId
- dataObj.set(item)
- return dataObj
- })
- console.log(list)
- return list
- }
- }
- module.exports.CloudQuery = CloudQuery
|