【发布时间】:2016-05-30 15:15:35
【问题描述】:
我正在尝试在 node.js 环境中使用 Parse Javascript SDK,但我完全不明白为什么我不能让它工作。我在 Swift iOS 应用程序中使用 Parse,所以我熟悉 Parse 客户端代码。
这是我想要做的:
var Parse = require('parse/node');
function ParseModule() {
var self = this;
self.initialize = function () {
return new Promise(function(resolve, reject) {
Parse.initialize("myAppID", "myJavascriptKey", "myMasterKey");
Parse.serverUrl = "https://myserver.com/parse";
Parse.Cloud.useMasterKey();
var query = new Parse.Query("MyClassName");
query.find()
.then(
function(results) {
console.log("yay! it worked");
resolve();
}
).catch(
function(err) {
output.log("parse error: " + err);
reject(err);
}
);
});
}
return self;
}
module.exports = new ParseModule();
当调用我的模块的初始化函数时,在进行“查找”调用后,在节点调试中它只是挂起节点。在节点中它只是退出应用程序,所以我没有收到错误。这可能是因为使用了错误的(硬编码)服务器 URL。
顺便说一句,我真的很想使用主密钥而不是 Javascript 密钥,但初始化方法需要 Javascript 密钥。
此外,当我单步执行 Parse SDK 代码时,我会看到以下语句:
var url = _CoreManager2['default'].get('SERVER_URL');
在 RESTController.js 中。它从“config”对象中找到的服务器 url,在我看来,这似乎是 parse-server 使用的对象。因此,按照文档的说明设置 serverUrl 无效。
我没有使用正确的 Parse NPM 模块吗?我是 node.js 的新手。
我把整个个人项目开发日都浪费在这上面了!!
谢谢, 彼得...
更新:我在 Parse.serverUrl=... 的(几乎肯定没用的)集之后添加了以下代码行。这似乎解决了问题。
Parse.CoreManager.set('SERVER_URL', "https://myserver.com/parse");
但是,这对我来说似乎是一个 hack。如果正在做与我正在做的事情相似的人能告诉我我做错了什么(即正确的方法),我将不胜感激。
【问题讨论】:
-
Parse.Cloud.useMasterKey();是不行的。您应该改为 query.find({useMasterKey:true} )。
标签: javascript node.js parse-platform sdk client