Parse.com 将云代码添加到 html 按钮
Parse.com Adding Cloud code to html buttons
我正在使用我在 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 语句只指示登录到 itSplash,如果是其他任何人,则使用 ticketRequest。我们为不同的用户提供了单独的页面。此外,如果我将它创建为普通函数 authenticate(),则该函数在本地工作。如上所示,当我将其转换为云代码时,它无法正常工作。我创建了一个单独的函数名称 运行Authenticate(),其中有一个 Parse.Cloud.run 调用,它在那里不起作用。我得到的只是一个错误,说 define 不能用于该对象。有帮助吗?
首先,您无权访问云代码中的 document
或 window
,因此您需要重新考虑您的来源。
另外,将用户详情发送到云代码是不合适的,你应该使用SDK登录网页,然后使用SDK触发云代码,它会发送用户和授权详情。
因此,您的 authenticate
函数在云代码中的整个前提并不真正有效。
这并不意味着您不应该使用云代码,只是您不应该将它用于此目的。您谈论进行查询,但您显示的代码中实际上没有任何查询 - 但这种事情更有可能移动到云代码......
您可以link使用Parse.Cloud.run.HTML云码功能的按钮。
看一下 Parse Cloud 代码
documentations.
这是从 javascript 调用云代码的方法。
Parse.Cloud.run('hello', {}, {
success: function(result) {
// result is 'Hello world!'
},
error: function(error) {
// Error while running cloud code
}
});
如您所写,您可以尝试在单击 HTML 按钮时调用 javascript 方法,然后调用 Parse.Cloud.run 方法。
我正在使用我在 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 语句只指示登录到 itSplash,如果是其他任何人,则使用 ticketRequest。我们为不同的用户提供了单独的页面。此外,如果我将它创建为普通函数 authenticate(),则该函数在本地工作。如上所示,当我将其转换为云代码时,它无法正常工作。我创建了一个单独的函数名称 运行Authenticate(),其中有一个 Parse.Cloud.run 调用,它在那里不起作用。我得到的只是一个错误,说 define 不能用于该对象。有帮助吗?
首先,您无权访问云代码中的 document
或 window
,因此您需要重新考虑您的来源。
另外,将用户详情发送到云代码是不合适的,你应该使用SDK登录网页,然后使用SDK触发云代码,它会发送用户和授权详情。
因此,您的 authenticate
函数在云代码中的整个前提并不真正有效。
这并不意味着您不应该使用云代码,只是您不应该将它用于此目的。您谈论进行查询,但您显示的代码中实际上没有任何查询 - 但这种事情更有可能移动到云代码......
您可以link使用Parse.Cloud.run.HTML云码功能的按钮。
看一下 Parse Cloud 代码 documentations.
这是从 javascript 调用云代码的方法。
Parse.Cloud.run('hello', {}, {
success: function(result) {
// result is 'Hello world!'
},
error: function(error) {
// Error while running cloud code
}
});
如您所写,您可以尝试在单击 HTML 按钮时调用 javascript 方法,然后调用 Parse.Cloud.run 方法。