我正在用猫鼬编写一个简单的注册表格。我已经使用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函数中都正常工作。但是,当我取消评论时,它并不是识别按钮单击。
我想知道这是否是从注册页面获取值并将其存储在猫鼬数据库中的正确方法。
发布于 2016-11-29 07:33:23
您正在混合服务器和客户端代码。猫鼬模型和Node.js函数在客户端的window.onload中是不可访问的。
简单地说,您需要创建一个REST来在服务器上执行数据库操作。你有所有正确的工具,只是需要重新排序。
流动情况如下:
我的建议是让您通过本教程,这将消除您的混乱,并使您的速度在任何时候。祝好运!
同时,Passport可以帮助您进行身份验证,但我认为您应该首先学习如何构建一个基本的API。认证是一个棘手的问题;)
https://stackoverflow.com/questions/40859960
复制相似问题