【发布时间】:2015-06-02 16:55:27
【问题描述】:
我正在使用我在 parse.com 上创建的数据库在本地测试一些函数,并且这些函数完全按照预期运行。我现在正尝试将这些函数放在云代码上,以减少发送到解析的请求数量,并在云代码中而不是在本地运行查询。无论出于何种原因,当我将这些函数转换为云代码时,它们都无法正常工作。另外,我如何在 html 中制作一个可以在云代码中运行函数的按钮?
在云代码之前,我的 html 按钮是这样的:
<button type="button" onclick="authenticate()">Log-In</button>
如何使用如下所示的云代码创建该按钮:
Parse.Cloud.define("authenticate()", function(request, response) {
var myname = document.getElementById("username").value;
var mypass = document.getElementById("psswd").value;
Parse.User.logIn(myname, mypass, {
success: function(user) {
// Do stuff after successful login.
if(myname == "test1" || myname == "test2"){
window.location.href="itSplash.html";
}
else{
window.location.href="ticketRequest.html";
}
},
error: function(user, error) {
// The login failed. Check error to see why.
alert("Failed to login: " + error.message);
}
});
});
澄清如果用户名匹配 test1 或 test2,if 语句只指示登录到它Splash,如果是其他任何人,则为 ticketRequest。我们为不同的用户提供单独的页面。此外,如果我将其创建为普通函数 authenticate(),则该函数在本地工作。当我将其转换为如上所示的云代码时,它将无法工作。我创建了一个单独的函数名称 runAuthenticate() ,其中有一个 Parse.Cloud.run 调用,它在那里不起作用。我得到的只是一个错误,说不能在该对象上使用定义。有什么帮助吗?
【问题讨论】:
-
您是否检查了错误日志以查看它告诉您的内容未定义,您是否尝试过从 curl 运行云功能?
-
我在调试器模式下运行了代码。据我所知,它甚至不会运行任何功能,所以一切仍然未定义。在它运行任何东西之前,它会在 Parse.Cloud.define 部分引发错误,说明“无法在此对象上使用定义”。我测试了 Parse.com 上的示例 hello world 云代码,它运行良好,但上面代码的某些内容不起作用。我从我用来在本地运行它的 js 文件中复制并粘贴了它。
标签: javascript parse-platform parse-cloud-code