[英]Unable to use mongoose model
我正在使用貓鼬編寫一個簡單的注冊表。 我使用了一個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函數中都可以正常工作。 但是,當我取消注釋時,它無法識別按鈕單擊。
我想知道這是否是從注冊頁面獲取值並將其存儲在貓鼬數據庫中的正確方法。
您正在混合服務器和客戶端代碼。 在客戶端的window.onload內部無法訪問貓鼬模型和Node.js函數。
簡而言之,您需要創建一個REST API來在服務器上執行數據庫操作。 您擁有所有正確的工具,只需要重新排序即可。
流程將是這樣的:
我的建議是讓您閱讀本教程 , 該教程可以消除您的困惑,並讓您立即上手。 祝好運!
另外,Passport可以幫助您進行身份驗證,但是我相信您應該首先學習如何構建基本的API。 認證是一個棘手的野獸;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.