我目前正在使用Node.js + Parse Server作为应用程序,使用来自客户端的大部分Parse SDK,仍有许多更改和重构要对应用程序执行。该应用程序存在的一个问题是,某些逻辑应该位于Cloud Code而不是内置于客户端。
目前我在Parse Cloud Code中只有很少的功能,而且它们很乱,因为:
恢复:我认为最好的解决方案是创建一个Node.js实例来管理Cloud Code。它将具有主密钥和对Parse服务器的完全访问权限,因此它可以像客户端一样工作,但不会将逻辑暴露给假想的攻击者。
你会怎么做?我应该考虑哪些因素?
谢谢!
答案 0 :(得分:3)
你应该理解的一件事是:解析服务器是一个Node.js服务器。它只是处理许多事情,如身份验证,会话管理等,开箱即用。
解决您的具体问题:
'use strict';
才能使其正常工作。解析 支持承诺。它不仅具有Parse本机承诺库(here),还可以将任何Promise库添加为NPM模块。我通常将Bluebird添加到我的package.json中,以便我可以使用一些很酷的收集方法(地图,每个等)。 问题二:我承认将所有功能都放在一个文件中有点烦人,但我已经提出了一个解决方案更简单一点:我只是将(request, response)
传递给另一个模块中的函数:
const userTrigger = require('./triggers/userTrigger.js');
Parse.Cloud.beforeSave('_User', (request, response) => {
userTrigger.beforeSave(request, response);
});
// *notice ES6 syntax above
问题三:我不确定您的问题在这里。您是否在与Parse Server相同的计算机上托管MongoDB实例?然后,是的,我认为你应该在一台单独的机器上托管它。但我认为你有一个"客户"托管你的后端逻辑是过度的。重申一下:Parse Server是一个后端服务器......你的后端逻辑应该驻留在哪里。
如果您仍然遇到麻烦,请告诉我。即使您不使用云代码,您仍然可以拥有与您的Parse Server托管在同一台计算机上的传统API端点。看看Parse Server中的index.js,我已经在这个级别写了很多函数,这样我就可以绕过app的Parse Server组件。
答案 1 :(得分:2)
我会用类似的响应加倍,我们有一个处理1000或RPS的设置,云代码是“需要”进入解析服务器,将你的代码注入stsrtj'进入解析服务器'运行时'。
我们还在节点中编写了后端,这些节点与解析服务器分开,微服务在解析服务器中使用/生成数据。