NODEJS工程-通用GET方法

。智能获取方法GET 每个表都自动有的 (主要作用是将获取数据的许多设置交给前端 减少接口修改次数)

。前端应了解只获取需要的最少字段 可以减少传输 一般是不获取所有字段的

。前端应了解无必要不要修改WHERE条件的顺序 因为字段顺序不一致不会用到数据库索引  

。如果需要修改where字段顺序 访问量又会比较大的应知会后端优化性能(虽然有监控数据 但是思维要跟上)

。但是如果接口定死了 特别是新业务需求变动太频繁会造成接口修改次数过多 工作量过大

。所以才有这样的设置将获取的字段数 排序及行数决定权都交给前端

。GET 用于重写(比如增加权限)

get(): Promise {     

        return this._get();

    }

。_get 具体实现 可输入参数

 _get(where?: string, colp?: string[]): Promise {

        const self = this;

        //colp = colp || this.cols;

        where = where || "";

        const up = self.up;

        return new Promise(async (resolve, reject) => {

            try {

                await this._upcheck();

            } catch (e) {

                reject(e);

                return;

            }

            colp = colp || up.cols;//修改列

            if (where == "" && up.pars.length >= 1) {

                for (var i = 0; i < up.pars.length; i++) {

                    where += " and " + colp[i] + "=?";

                }

            }

            var sb = 'SELECT ' + colp.join(",") + ",id,upby,uptime FROM " + self.tbname

                + " WHERE " + self.uidcid + '=? ' + where;

            if (self.haveoldid)

                sb += " and oldid is null";

            if (up.order !== "idpk")

                sb += '  order by ' + up.order;

            sb += ' limit ' + up.getstart + ',' + up.getnumber;

            var values = [up[self.uidcid]];

            if (where !== '')

                values = values.concat(up.pars);

            let tb = await self.mysql1.doGet(sb, values, up);

            resolve(tb);

        });

    }

后端用法:

。重写增加权限

//查询

get(): Promise {

        const self = this;

        const up = self.up;

        return new Promise(async (resolve, reject) => {

            try {

                await this._upcheck();

            } catch (e) {

                reject(e);

                return;

            }

            let power = await self._vidateforuid(self.tbname + "_get");

            //await self._addWarn(JSON.stringify(power), "sys_sql", "services", "services_dinpay");

            if (power["code"] != 200) {

                resolve(power["errmsg"]);

                return;

            }

            let back = await self._get();

            resolve(back);

        });

    }

。重写增加条件


。以后联表查询的应该也写成这样的接口 方便前端

前端用法(主要是将获取数据的许多设置交给前端 减少接口修改次数):

。例如表景区基本表有字段place kind viewname

。自定义获取的字段 ex:只获取地点和景区名 up.cols=[place, viewname]

。自定义获取的条件(必须是按顺序)

。。例如按地点和类别查找 up.pars=[广州,测试类别]

就会转换为where uidcid=? and place=? and kind=?

。。例如按地点查找up.pars=[广州]

就会转换为where uidcid=? and place=? 

。。如果按类别 地点查找 up.cols=[kind,viewname,place](总之把你要的条件放到最前面来)

up.pars=[测试类别]就会转换为where uidcid=? and kind=? 

。自定义排序字段up.order=viewname

。自定义获取的行数或分页up.getstart=1 up.getnumber=10即1~10行 翻页即up.getstart+=up.getnumber 注意up.getnumber不变

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容

  • 一,apk以进程的形式运行,进程的创建是由zygote。 参考文章《深入理解Dalvik虚拟机- Android应...
    Kevin_Junbaozi阅读 2,833评论 0 12
  • 弄懂js异步 讲异步之前,我们必须掌握一个基础知识-event-loop。 我们知道JavaScript的一大特点...
    DCbryant阅读 2,707评论 0 5
  • 加入写作群心得: 1.每天写作很重要,对于养成习惯的高频小套路很有用可,可如果不是刚需,哪怕有技巧也很难持续去做。...
    用户更新中阅读 103评论 0 0
  • 生活总有那么些时刻,令我觉得胸中瞬间拥堵,不得不对天长叹一声,“钱到用时方恨少啊。”比如,受够了同事的阴阳怪...
    名为黛玉字李逵阅读 523评论 0 0
  • 这座安静的小院 隐居在一所学校后面 平时紧闭的木门 会被温暖的阳光打开 请出深居简出的主人 你会常常看见 一位瘦骨...
    金指尖的花园阅读 329评论 1 8