使用 Parse-Server 划分 Cloud Code 的正确方法

Proper way to compartmentalize Cloud Code with Parse-Server

目前我呃...构建了一个非常大main.js文件,其中包括所有我的肉解析服务器的云代码。它充满了 ~200 多个单独的 Parse.Cloud.job("jobName", function(request, status){})Parse.Cloud.define("functionName", function(request, response){}) 调用,并完成了它们的实现。

我想在未来更恰当地重构/构建我的代码,但我不确定这样做的最佳实践。

我的 main.js 应该充满这样的东西吗:

Parse.Cloud.define("function1", require('../function1.js'));
Parse.Cloud.define("function2", require('../function2.js'));
Parse.Cloud.job("job1", require('../job1.js'));

我在哪里为 main.js 中的每个功能/作业调用 Parse.Cloud.define/job,并要求在线,单个文件是单个功能?

或者有没有办法 main.js 可以要求我的各种包含几个相关函数的 js 文件,并从这些文件中调用 Parse.Cloud.define/job?

将这两者结合起来会不会更好:

const module1 = require('../module1.js');
const module2 = require('../module2.js');

Parse.Cloud.define("function1", module1.function1(request, response));
Parse.Cloud.define("function2", module2.function2(request, response));
Parse.Cloud.job("job1", module1.job1(request, status));
Parse.Cloud.job("job2", module2.job2(request, status));

我非常希望有人指出一些 material 应该如何最好地构建它。我总体上发现了一些关于 node.js 应用程序的 material,但我担心 Parse-Server 的特定方面,以及 Parse.Cloud.define 是否可以在任何地方调用,而不仅仅是main.js。我在搜索中找不到该问题的任何答案。如果您有任何使用 Parse-Server 的项目示例,您认为它们的结构非常好,我也很想看看这些。

感谢您的任何建议!

我遇到了和你完全一样的情况,我决定做的是将我的云代码分成模块。我构建了一个模块 class。因此,假设您的项目中有以下 classes:

  1. 用户
  2. 联系方式
  3. 通讯
  4. ...

那么除了 main.js 文件外,您还需要创建 user.js、contact.js、communication.js 在您的 main.js 文件中,您需要需要这些模块。当你需要它们时,请注意你使用了正确的路径我建议你使用 nodejs pathmodule.

在您的 main.js 中,您还可以添加一些通用逻辑,当然还有需要上面其他模块的代码。

在您的模块中,您可以创建云代码事件(afterSave、beforeSave 等)以及自定义云代码函数。从那里您可以自由使用任何您想要的方法或设计模式(util、classes、函数、闭包等)

此外,我建议您使用 Promises 以获得干净的代码。

希望对您有所帮助。