【问题标题】:Using Cloud Code with the Parse Server and Heroku将云代码与 Parse 服务器和 Heroku 一起使用
【发布时间】:2016-06-17 16:43:05
【问题描述】:

我正在尝试了解新的 Parse Server 并已部署在 Heroku 上。这进展顺利,但我正在努力解决如何编写服务器端代码(云代码)。我已经多次阅读解析服务器示例,所以我一定遗漏了一些东西,但我很不清楚我是否应该使用 Express 来做某事,或者我什至如何开始包含我的云代码文件。非常感谢任何帮助。

更新:

我发现刚才在错误位置查找的云文件夹。我将它和 index.js 移动到桌面上的应用程序文件夹中。我已将 main.js 中的默认代码更改为我的自定义代码。我已经使用我的应用程序信息设置了 index.js。现在的问题是当我运行应用程序并尝试调用云代码函数时,我得到错误无效函数。

【问题讨论】:

    标签: ios swift parse-cloud-code parse-server


    【解决方案1】:

    如果您在 heroku 上运行解析服务器示例,那么您的成功率是 90%。只需打开 cloud/main.js 文件并开始添加您的云代码。那里应该有一个 hello cloud 功能作为示例。

    要使用您已经创建的云代码模块/文件,您可以像之前在 parse.com 上所做的那样要求它们。唯一的区别是路径现在应该是相对的而不是绝对的。例如,如果云目录中有一个名为 cloudFunctions.js 的模块,require('cloud/cloudFunctions'); 应该是 require('./cloudFunctions');

    Cloud Code 的工作方式类似于它在 parse.com 上的工作方式,对于简单的应用程序,您不必过多考虑 expressjs。也就是说,解析服务器正在使用 expressjs,所以是的,您正在使用它。

    解析服务器只是一个类似于其他数千个可用的节点模块。如果您以前没有使用 nodejs 的经验,那么运行解析服务器可能看起来很复杂。因此,我建议在完全迁移之前阅读有关 nodejs 的基础知识。

    【讨论】:

    • 感谢您的精彩回答!我还有几个问题。我使用了“部署到 Heroku”按钮,但没有 main.js 文件。您能否指出部署到包含 main.js 文件的 heroku 的正确方法的方向?我一定会阅读有关 nodejs 的内容。
    • 啊哈!您是否在使用部署按钮后运行 heroku git:clone -a yourAppName 以在本地获取文件?如果是这样,您应该得到一个带有 main.js 文件的云目录?要继续进行更新,您可以在此处阅读有关 heroku 部署的信息devcenter.heroku.com/articles/deploying-nodejs
    • 谢谢!是的,我做到了,但是 main.js 文件应该出现在哪里?因为我似乎找不到它。
    • 奇怪!你拿到云文件夹了吗?
    • 应该在你的根目录下吧?但是,您可以更改名称,只要您更新解析服务器初始化代码中的路径即可。
    【解决方案2】:

    我在 Google Compute Engine 实例上使用 Bitnami 堆栈,我遇到了与您类似的问题。要解决它,只需导航到 server.js 文件所在的文件夹并创建一个名为“cloud”的文件夹。然后在 cloud 文件夹中创建 main.js 文件,内容如下:

    Parse.Cloud.define('hello', function(req, res) {
      res.success('Hi');
    });
    

    现在打开 server.js 文件并找到包含云代码文件路径的行。将其更改为指向您的 main.js 文件,如下所示:

    这可以是您选择的任意文件夹。 现在只需重新启动解析服务器并调用云函数:

    String result = ParseCloud.callFunction("hello", new HashMap<>());
    

    这适用于 Java SDK,但应该没有太大区别。如果您使用了上面的函数,变量结果将等于“Hi”。

    【讨论】:

    • 我也在使用 Bitnami Stack,但只要我将云参数从 ./node_modules/parse-server/lib/cloud-code/Parse.Cloud.js 更改为 ./cloud/ main.js 我的网站停止运行 - 我也尝试将我的云代码附加到 Parse.Cloud.js 文件,但即便如此它也停止工作。我需要将自己的云代码迁移到服务器上,我该怎么做?谢谢。
    • @Meeyam 请检查解析日志并发布任何错误消息。我发现大多数错误都可以通过这种方式轻松解决。当您停止服务器时,它会告诉您日志的位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    相关资源
    最近更新 更多