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 不能用于该对象。有帮助吗?

首先,您无权访问云代码中的 documentwindow,因此您需要重新考虑您的来源。

另外,将用户详情发送到云代码是不合适的,你应该使用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 方法。