微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AWS EC2 上的 Pasre 服务器在云代码上出现 141 错误

如何解决AWS EC2 上的 Pasre 服务器在云代码上出现 141 错误

我现在使用以下云代码仅更新在 AWS EC2 实例上运行的解析服务器上的“下载”列。但我收到错误代码 141(无效函数

Parse.Cloud.define("updateDownloads",async (request) => {
    const query = new Parse.Query(request.params.className);
    query.get(request.params.objectId)
    .then((watchFace) => {
        downloads = watchFace.get("downloads")
        watchFace.set("downloads",downloads + 1);
        await watchFace.save(null,{ useMasterKey: true });
        return "download updated";
    },(error) => {
      return "something went wrong";
    });
  });

我已将代码放在 /opt/bitnami/cloud/main.js 中。 我什至尝试在 config.json 文件添加 “cloud”: “/opt/bitnami/cloud/main.js” 但是解析服务器给出了 503 Service Unavailable 错误。所以我删除了它。

解决方法

如果您不将云代码 main.js 文件添加到您的解析服务器配置中,解析服务器将永远找不到您的函数,这就是您收到无效函数错误的原因。

如果在添加文件时出错,要么是添加方式错误(需要检查解析服务器初始化代码),要么是config.json格式错误或云代码有问题。

找出问题的最佳方法是检查您的日志。

乍一看,我看到的一个问题(可能还有其他问题)是在不是 await 的函数中使用了 async。您还使用了 asyncthen 的组合,这有点奇怪。

我建议您将代码更改为:

Parse.Cloud.define("updateDownloads",async (request) => {
    const query = new Parse.Query(request.params.className);
    const watchFace  = await query.get(request.params.objectId);
    const downloads = watchFace.get("downloads");
    watchFace.set("downloads",downloads + 1); // You can use inc function to avoid concurrency problem
    await watchFace.save(null,{ useMasterKey: true });
    return "download updated";    
  });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。