gpt4 book ai didi

javascript - 设置替代 Node.js 服务以在本地与 Parse Server 通信

转载 作者:太空宇宙 更新时间:2023-11-04 02:56:06 26 4
gpt4 key购买 nike

我目前正在为应用程序使用 Node.js + Parse Server,使用客户端的大部分 Parse SDK,但仍有许多更改和重构需要对应用程序进行。该应用程序存在的问题之一是,某些逻辑应位于云代码中,而不是内置于客户端中。

目前,我在 Parse Cloud 代码中只内置了一小部分函数,​​而且它们很困惑,因为:

  • 问题 1:Parse Cloud Code 不允许 ES6。甚至不支持 promise 。这使得它的代码非常丑陋,并且与应用程序的其余部分完全不同,后者几乎所有内容都使用 ES6 + TS(它是一个 Ionic 3/Angular 4 应用程序)。
  • 问题 2:我讨厌将所有这些函数放在一个文件中。看起来可扩展性很差,并且浏览它们变得更加困难。
  • 问题 3:此应用程序设计得“相当大”。我们要做的一个更改是将 mongodb 服务器更改为另一台机器,这样网络和服务器负载更容易管理,但我认为将 Parse Server 实例与执行某些后端逻辑的实例分开也很好。

恢复:我认为最好的解决方案是创建一个 Node.js 实例来管理云代码。它将拥有主 key 和对 Parse 服务器的完全访问权限,因此它可以像客户端一样工作,但只是不会将逻辑暴露给假设的攻击者。

你会怎么做?我应该考虑哪些因素?

谢谢!

最佳答案

您应该了解的一件事是:Parse Server 是一个 Node.js 服务器。它只是处理许多开箱即用的事情,例如身份验证、 session 管理等。

为了解决您的具体问题:

  • 问题一:解析云代码实际上确实支持ES6。我必须将 'use strict'; 添加到文件顶部才能使其正常工作。 Parse 确实支持 promise 。它不仅有一个 Parse 原生的 Promise 库 ( here ),您还可以添加任何 Promise 库作为 NPM 模块。我通常将 Bluebird 添加到我的 package.json 中,以便我可以使用一些很酷的收集方法(map、each 等)。
  • 问题二:我承认将所有函数都放在一个文件中有点烦人,但我想出了一个使它变得更容易的解决方案:我只需将 (request, response) 传递给不同模块中的函数:

    const userTrigger = require('./triggers/userTrigger.js');

    Parse.Cloud.beforeSave('_User', (request, response) => {
    userTrigger.beforeSave(request, response);
    });

    // *notice ES6 syntax above
  • 问题三:我不确定您的问题是什么。您是否将 MongoDB 实例与 Parse Server 托管在同一台计算机上?然后,是的,我认为你应该将它托管在一台单独的机器上。但我认为你拥有一个托管后端逻辑的“客户端”的方法是多余的。重申一下:Parse Server 是一个后端服务器...这就是您的后端逻辑应该驻留的位置。

如果您仍然遇到问题,请告诉我。即使您不使用云代码,您仍然可以拥有与 Parse Server 托管在同一台计算机上的传统 API 端点。看一下 Parse Server 中的 index.js,我在这个级别编写了许多函数,这样我就可以绕过应用程序的 Parse Server 组件。

关于javascript - 设置替代 Node.js 服务以在本地与 Parse Server 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46068030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com