gpt4 book ai didi

javascript - parse.com 引用错误 : user is not defined

转载 作者:搜寻专家 更新时间:2023-10-30 20:57:09 26 4
gpt4 key购买 nike

我发现这个非常酷的网站叫做 http://parse.com .它是一个在线数据库(还有许多其他内容)。一定要检查一下。无论如何,我相信我离弄清楚如何使用 Parse.User 并在 ejs 模板中呈现对象电子邮件只有一步之遥。我拥有它以便我可以在 parse.com 上创建和存储用户 - 但我认为我的模板无法识别我创建的“用户”变量。这是我的代码和错误:

应用程序.js

$(document).ready(function() {
$("#signupform").submit(function(e) {
e.preventDefault();

Parse.initialize("O3LAmHCCGmMWBRuPEt4cXWP5ChQMjeruyOkMN7m1", "AIyuUVnGYbyQrWaYns7TL3XpmjPb1FDeplQ76DgG");

var user = new Parse.User();
user.setUsername($('#username').val());
user.setEmail($('#email').val());
user.setPassword($('#pw').val());

user.signUp();

var html = new EJS({url: 'templates/usershow.ejs'}).render(user);
var content = document.getElementById('listuser');
content.innerHTML = content.innerHTML + html;
$("#signupform").remove();
});
});

模板/usershow.ejs

<li><%= user.getEmail() %></li>

index.html

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>it IT</title>
<link rel="stylesheet" type="text/css" href="application.css" />
<script src="jquery.js"></script>
<script src="application.js"></script>
<script type="text/javascript" src="ejs_production.js"></script>
<script src="http://www.parsecdn.com/js/parse-1.2.7.min.js"></script>
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<h1>it IT</h1>
<div id="signup">
<form id="signupform">
Username: <input type="text" name="username" id="username"><br>
Password: <input type="password" name="pw" id="pw"><br>
Email: <input type="text" name="email" id="email"><br>
<input type="submit" value="sign up">
</form>
</div>
<div id="signin"></div>
<div id="showuser">
<h2>Username - Email</h2>
<ul id="listuser"></ul>
</div>
</body>
</html>

我在 firebug 中遇到的错误(在成功发布到 parse.com 数据库之后)是:

ReferenceError: 用户未定义

有问题的行似乎是 var html = new EJS({url: 'templates/usershow.ejs'}).render(user); 行。我不确定渲染函数是否可以识别 Parse.User 对象?将 ejs 与 Parse.User 一起使用可能有问题?

更新

为了回应下面的评论,我将代码更改为:

$(document).ready(function() {
$("#signupform").submit(function(e) {
e.preventDefault();

Parse.initialize("O3LAmHCCGmMWBRuPEt4cXWP5ChQMjeruyOkMN7m1", "AIyuUVnGYbyQrWaYns7TL3XpmjPb1FDeplQ76DgG");

var user = new Parse.User();
user.setUsername($('#username').val());
user.setEmail($('#email').val());
user.setPassword($('#pw').val());

user.signUp(null, {
success: function (user) {
// Hooray! Let them use the app now.
var html = new EJS({url: 'templates/usershow.ejs'}).render(user);
var content = document.getElementById('listuser');
content.innerHTML = content.innerHTML + html;
$("#signupform").remove();
},
error: function (user, error) {
// Show the error message somewhere and let the user try again.
//alert("Error: " + error.code + " " + error.message);
console.log("Error: " + error.code + " " + error.message);
}
});
});
});

虽然我认为这更正了我的代码中的一个问题......但我仍然遇到同样的错误,如上所述。

再次,我回到这一行 var html = new EJS({url: 'templates/usershow.ejs'}).render(user); 作为罪魁祸首......仅仅因为用户对象是一个 Parse.User 对象而不仅仅是一个普通对象?

最佳答案

您在此处进行的调用是异步的,您需要在解析调用的成功 block 中编写代码,因此一旦解析的回复返回到您的应用程序就会执行。

    var user = new Parse.User(); 
user.setUsername($('#username').val());
user.setEmail($('#email').val());
user.setPassword($('#pw').val());

newUser.signUp(null, {
success: function (user) {
// Hooray! Let them use the app now.
var html = new EJS({url: 'templates/usershow.ejs'}).render(user);
var content = document.getElementById('listuser');
content.innerHTML = content.innerHTML + html;
$("#signupform").remove();
},
error: function (user, error) {
// Show the error message somewhere and let the user try again.
//alert("Error: " + error.code + " " + error.message);
console.log("Error: " + error.code + " " + error.message);
}
});

关于javascript - parse.com 引用错误 : user is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16909699/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com