美文网首页开源Parse Server
Parse Server 的云函数写法优化

Parse Server 的云函数写法优化

作者: xiangdong_9013 | 来源:发表于2020-05-27 16:40 被阅读0次

    我们在使用parse server时,需要编写一些在服务器端运行的函数,也就是cloud function(云函数),定义一个云函数的默认写法为:

    Parse.Cloud.define("hello", request => {
      let param_A = request.params.param_A;
      return `hello, ${param_A}`;
    });
    

    客户端(以js环境为例)调用时写法为:

    Parse.Cloud.run("hello",{param_A: "everyone"}).then(res => {
        console.log(`hello返回结果:${res}`);
    }).catch(err => {
        console.log(`执行错误:${err}`);
    });
    

    以上表示定义一个云函数为hello,参数为param_A,返回值为字符串。这种写法很直观,但有个问题,定义中函数的名称是字符串(“hello”),当定义的云函数较多时,容易写错或者函数名重复,而在编码阶段难以发现这种错误。怎么避免呢,我在定义时使了个小trick,推荐给大家。
    1.cloud目录下,写一个common.js文件,其中定义如下:

    function defineCloudFunction(func) {
      Parse.Cloud.define(func.name, func);
    }
    module.exports = {
      defineCloudFunction,
    };
    

    2.cloud目录下,在要编写云函数的文件(如hello.js)中,就可以这样定义云函数了:

    const parse = require('./common');
    const hello = request => {
      let param_A = request.params.param_A;
      return `hello, ${param_A}`;
    }
    
    parse.defineCloudFunction(hello);
    

    基于同样的trick,我也改造了cloud trigger的写法,使得定义afterSave、beforeDelete等cloud trigger时,仅配置触发条件的className、field和触发后受影响的className、field即可,而不用在每个class上去定义其trigger。下次再更新。

    相关文章

      网友评论

        本文标题:Parse Server 的云函数写法优化

        本文链接:https://www.haomeiwen.com/subject/rhowahtx.html