2015-11-01 80 views
1

我使用Parse的CLI与新的Heroku集成来创建脚手架NodeJS项目(parse new)。解析+ Heroku查询500错误

它给你的例子云功能是:

// Hello 
Parse.Cloud.define('hello', function(request, response) {  

    response.success('Hello world! ' + (request.params.a + request.params.b)); 

}); 

我打这条路线与下面的curl命令,一切工作正常:

curl -X POST \ 
-H "X-Parse-Application-Id: b8qPYS4SLSz0WoSWXlWeQosmF2jJPUPydetg3esR" \ 
-H "X-Parse-REST-API-Key: TOJLbfbNXSQcBdDVnU0MnKVu7SyamQvZmorHL5iD" \ 
-H "Content-Type: application/json" \ 
-d '{"a": "Adventurous ", "b": "Parser"}' \ 
https://api.parse.com/1/functions/hello 

但后来我加了一个新的类来我的解析数据,插入一行,并试图查询&返回结果。我始终得到{"code":143,"error":"Invalid webhook response status: 500 Internal Server Error"}作为回应。

我相当肯定这不是我的代码,这是问题,我猜测有一些配置步骤或我失踪的东西。

这是我修改解析功能:

// Hello 
Parse.Cloud.define('hello', function(request, response) {  
    var query = Parse.Query("Favorites"); 

    query.find({ useMasterKey: true }).then(
    function(results) { 
     response.success('win'); 
    }, function() { 
     response.error('fail'); 
    }); 

}); 

我的解析类与插排图片:

enter image description here

我用Google搜索了错误,无法找到任何良好的答案只是措辞不佳的问题。我在这里完全不知所措。在此先感谢您的帮助。

+2

列出KEYS在论坛不好主意! –

+0

转到解析仪表板并验证用户可能会创建新类。如有必要,在仪表板中创建新班级。添加行到它。在仪表板中进行验证。从CLI调用新类(在REST调用到云功能时GET)。然后使用查询从节点层获取它们。它应该都可以工作 –

+0

他们是公钥,对他们来说没有任何秘密。你正在描述的步骤已经完成,如我的注释过的帖子所示。 –

回答

1

貌似分析是错误的寄存器webhooks.js后部署脚本初始化: Parse.initialize(process.env.PARSE_APP_ID, “未使用”,process.env.PARSE_MASTER_KEY);

而没有第二个参数(JavaScript键),您不能从云端函数执行任何Parse.Query。

所以我的解决办法是:

  1. 添加新PARSE_JS_KEY到Heroku的配置变量(值从Parse->设置 - JavaScript的钥匙>键)

  2. 在server.js文件中添加一行:

    Parse.initialize(process.env.PARSE_APP_ID, process.env.PARSE_JS_KEY, process.env.PARSE_MASTER_KEY);

之前require('./cloud/main.js');

PS:将process.env.PARSE_JS_KEY直接放在register-webhooks.js初始值设定项不起作用。

+0

你是正确的!我不相信一个全新生成的应用程序可能会忽略这样的事情? –