在Parse-Server的Express应用程序中使用Parse Javascript SDK

时间:2016-04-15 16:35:41

标签: javascript node.js parse-platform parse-server

我有一个使用Parse Javascript SDK和Parse-Server的node.js express app。

我已根据guide设置了所有内容,但JS SDK无效。

我得到了{error:unauthorized}。我可以使用REST API访问我的服务器,但不能使用JS SDK从应用程序中访问。

我读到你必须为Parse-Server的所有操作指定useMasterKey = true,所以:

var User = Parse.Object.extend('_User');
var query = new Parse.Query(User);
query.useMasterKey = true;

query.find().then( function(results) {
    console.log(results);
},
function(error) {
    console.log(JSON.stringify(error));
});

应该返回与此curl相同的数据(对吗?):

curl -X GET \
-H "X-Parse-Application-Id: myAppId" \
-H "X-Parse-Master-Key: myMasterKey" \
http://localhost:1337/parse/classes/_User
唉,事实并非如此。

当我尝试运行默认的云代码功能时出现相同的错误消息:

 Parse.Cloud.run('hello').then( function(response) {
    console.log(response);
 },
 function(error) {
    console.log(JSON.stringify(error));
 }); 

任何可能有帮助的想法?感谢。

2 个答案:

答案 0 :(得分:3)

知道了!

在我的Express应用程序中,对我来说这些行是什么

 var Parse = require('parse/node').Parse;
 Parse.initialize('app_id', 'js_key','master_key');
 Parse.serverURL = 'serverURL';
 Parse.Cloud.useMasterKey();

在这些行之后,任何需要使用Cloud Code或Parse使用的呼叫都被授权

答案 1 :(得分:1)

我的问题是缺乏经验:

我正在使用body-parser并将应用设置为使用该模块的rawjsontexturlencoded中间件功能。

我只需要urlencoded选项。我删除了其他人,JS SDK开始正常工作。不知何故,其他功能正在干扰SDK。