【问题标题】:parse cloud code is not performing designated task and no log is created解析云代码未执行指定任务且未创建日志
【发布时间】:2019-03-22 12:02:58
【问题描述】:

我的 afterSave 云代码应该在每次保存后运行,但我没有看到它执行任务。也没有调试信息写入本地“temp.txt”文件

我的解析服务器在 docker 容器上运行(也许是相关的) 在 /parse-server/cloud 中创建 main.js 之后,我做了一个干净的 docker run(启动解析服务器) > 子文件夹,但仍然没有看到任何东西

如何调试这个云代码问题?

我的 main.js 内容:

Parse.Cloud.afterSave("Post", (request) => {
var fs = require("fs");
    const image = request.object.get("image").url();
    const detail  = request.object.get("detail");
    const geo = request.object.get("geo");
    const itemId = request.object.get("objectId");
fs.writeFileSync('./temp.txt', request, function(err, data) {
  if (err) console.log(err);
});

    console.log(detail);
    console.log(image);
    console.log(geo);
    console.log('========');

var data =detail+" "+image+" "+geo+" "+request;

fs.appendFileSync("./temp.txt", data, function(err, data) {
  if (err) console.log(err);
  console.log("Successfully Written to File.");
});

    var postRequest = require('request');
    postRequest({
      method: 'POST',
      preambleCRLF: true,
      postambleCRLF: true,
      json: true,
      uri: 'https://graph.facebook.com/1111/feed?access_token=sometoken',
      body:
        {
          message: detail,
          link: image
        }
    },
    function (error, response, body) {
      if (error) {
        return console.error('upload failed:', error);
        console.log('statusCode:', response && response.statusCode);
        fs.appendFileSync("temp.txt", response+" "+ response.statusCode
                ,function(err, data) {
                       if (err) console.log(err);
                });
      }
      console.log('Upload successful!  Server responded with:', body);
    })

  }
);

【问题讨论】:

  • 实例化服务器时,是否设置了云路径?是否附加了云卷?你有没有修改过默认的CLOUD_CODE_MAIN
  • 谢谢老兄!我没有使用“--cloud”开关启动容器
  • 完美 - 如果您编写解决方案,它应该可以帮助其他人。

标签: docker parse-platform parse-javascript-sdk parse-cloud-code


【解决方案1】:

在启动 parse docker 容器(例如使用“docker run”)时,我们还必须传递“我们的云代码 main.js 文件的绝对路径。” (包括main.js)

例如:

sudo docker run  --name parse --network=test  --appId <app-id> --masterKey <mater-key>--publicServerURL https://my-url.com/parse --databaseURI mongodb://mongo:port/mongo --cloud /parse-server/<cloudpath>/main.js 

docker run”命令中缺少的开关是:

--cloud /parse-server/cloudpath/main.js

这解决了问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-19
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多