gpt4 book ai didi

javascript - 无法使用 Mongoose 模型

转载 作者:可可西里 更新时间:2023-11-01 10:02:45 26 4
gpt4 key购买 nike

我正在使用 Mongoose 编写一个简单的注册表单。我使用了一个 javascript 文件来处理注册表单的值。

这是我的registrationButtonAction.js

window.onload = function() {

var User = require('/models/Mongoose Database/user_database');
// this line is causing the problem


var registerButton = document.getElementById("registerMe");
var firstName = document.getElementById("firstName");
var lastName = document.getElementById("lastName");
var usernameRegister = document.getElementById("usernameRegister");
var passwordRegister = document.getElementById("passwordRegister");
var repasswordRegister = document.getElementById("repasswordRegister");


registerButton.onclick = function () {

if(!firstName.value || !passwordRegister.value || !repasswordRegister.value || !usernameRegister.value){
alert("Enter all required fields");
}else if (passwordRegister.value != repasswordRegister.value){
alert("Passwords must match");
}else {
var newUser = new User({
username : usernameRegister.value,
password : passwordRegister.value
});
User.find({username:usernameRegister.value}, function (error, user) {

if (error) throw error;

if(user){
window.location("/register");
}else {
newUser.save(function (error) {
if(error) throw error;
});
window.location("/login");
}
// user.comparePassword(passwordRegister.value, function (error, isMatch) {
// if (error) throw error;
//
// return 1;

//})
});

}

}


}

当我评论 var User = require('/models/Mongoose Database/user_database'); 时,所有检查都在 onclick 函数内正常工作。但是当我取消注释时,它无法识别按钮点击。

我想知道这是否是从注册页面获取值并将它们存储在 mongoose 数据库中的正确方法。

最佳答案

您正在混合使用服务器和客户端代码。 Mongoose 模型和 Node.js 函数无法在客户端的 window.onload 中访问。

简单来说,你需要创建一个REST API来对服务器进行数据库操作。您已经准备好所有合适的工具,只需重新订购即可。

流程是这样的:

  • 获取在浏览器中输入的值
  • 在您的服务器上调用端点(例如/api/createUser)
  • 在 express 路由器中,有一个名为/api/createUser 的路由,您可以在其中访问您的用户模型并执行创建/删除/更新等操作。

我的建议是让你通过 this tutorial这应该会消除您的困惑并让您立即上手。祝你好运!

此外,Passport 可以帮助您进行身份验证,但我相信您应该首先学习如何构建基本 API。身份验证是一个棘手的野兽;)

关于javascript - 无法使用 Mongoose 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40859960/

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