簡體   English   中英

無法使用貓鼬模型

[英]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來在服務器上執行數據庫操作。 您擁有所有正確的工具,只需要重新排序即可。

流程將是這樣的:

  • 獲取在瀏覽器中輸入的值
  • 調用服務器上的端點(例如/ api / createUser)
  • 在快速路由器中,有一個名為/ api / createUser的路由,您可以在其中訪問用戶模型並執行創建/刪除/更新等操作。

我的建議是讓您閱讀本教程該教程可以消除您的困惑,並讓您立即上手。 祝好運!

另外,Passport可以幫助您進行身份驗證,但是我相信您應該首先學習如何構建基本的API。 認證是一個棘手的野獸;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM