2015-06-02 41 views
0

我使用在parse.com上创建的数据库在本地测试一些函数,并且函数完全按照预期运行。我现在正在尝试将这些函数放在云代码上,以减少发送到解析的请求数量,并在云代码而不是本地运行查询。无论出于何种原因,当我将它们转换为云代码时,我无法让这些函数正常工作。另外,如何在HTML中创建一个可以在云代码中运行功能的按钮?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,则登录到它;如果其他任何人匹配ticketRequest,则登录到它。我们为不同的用户提供了单独的页面。此外,如果将该函数创建为普通函数authenticate(),则该函数将在本地工作。当我将它转换为云代码时,如上所示,它不会工作。我在里面创建了一个带有Parse.Cloud.run调用的独立函数名称runAuthenticate(),它不会在那里工作。我得到的只是一个错误,说定义不能在该对象上使用。任何帮助?

+0

您是否检查过错误日志,看看它告诉您的是未定义的,并且您是否试图从curl运行云功能? – Wain

+0

我在调试器模式下运行代码。从我可以告诉它甚至不会运行任何功能,所以一切都还没有定义。在它运行任何东西之前,它会在Parse.Cloud.define部分抛出一个错误,指出沿着“定义不能用在这个对象上”的东西。我测试了Parse.com上提供的示例hello world云代码,它工作正常,但有关上面的代码不起作用。我从字面上复制并粘贴从我用来在本地运行它的js文件。 –

回答

2

你可以链接HTML按钮与云代码函数通过使用Parse.Cloud.run。

看看Parse Cloud代码 documentations

这是如何从JavaScript调用云代码。

Parse.Cloud.run('hello', {}, { 
    success: function(result) { 
     // result is 'Hello world!' 
    }, 
    error: function(error) { 
     // Error while running cloud code 
    } 
}); 

正如你写,你可以尝试调用JavaScript方法的onclick上的HTML按钮,然后调用Parse.Cloud.run方法。

0

首先,您无法访问documentwindow云代码,因此您需要重新考虑您来自哪里。

此外,将用户详细信息发送到云代码并不合适,您应该使用SDK在网页上登录,然后使用SDK触发云代码,然后发送用户和授权细节。

因此,您的authenticate函数在云代码中的整个前提并不真正起作用。

这并不意味着你不应该使用云代码,它只是你不应该为此使用它。你谈论制作查询,但你实际上没有任何代码显示 - 但这种事情更可能移动到云代码...

+0

我所寻求的帮助/建议更多的是为什么我设置云代码的方式会导致它无法工作。文档/窗口访问是否导致错误发生?你是对的,因为函数中没有查询。我有几个其他功能,我没有列出使用查询。这些要复杂得多,所以我想在尝试使用这些函数之前尝试使用这个更简单的函数。另外,我仍然不知道如何在HTML按钮上运行云代码。如果我可以得到这个不显示错误,并学习如何使用Parse.Cloud.run在一个很好的HTML按钮, –

+0

此外,感谢在文档和窗口的输入。我很犹豫是否将这个功能添加到云代码中,因为它不会提高性能(即时猜测)。我只想看看我是否能够成功地在云代码中使用我的一个简单函数,但是我甚至无法在发生错误之前加载页面。 –

+0

在函数名中有'()'可能是个问题。然后是'文档'和'窗口'是不确定的,所以你会得到错误。解析有一个错误日志,你可以看,它会告诉你的问题。 – Wain