2017-05-31 46 views
0

請幫助我,下面的代碼。我試圖驗證登錄使用javascript和nedb數據庫。我做錯了什麼。如何驗證用戶登錄使用nodejs,javascript和nedb

的login.html

​​

loginvalidate.js

此代碼是爲了驗證,檢查和查詢用戶名和密碼數據庫,但事實並非如此。在出現對話框後單擊確定後,繼續進行home.html。

const database = require('../scripts/logindb'); 


    function validateForm() { 
    var user = document.loginform.user.value; 
    var pass = document.loginform.pass.value; 

    database.getAdmin(function(admin){ 

    var username = admin.username; 
    var password = admin.password; 
    if ((user == username) && (pass == password)) { 
     return false; 
    } 
    else { 
     alert ("Error , please check your username and password"); 
     return false; 
    } 

    });   
} 

logindb.js

var Datastore = require('nedb'); 

db = new Datastore({ filename: 'db/admin.db', autoload: true }); 

exports.addAdmin = function(firstname, lastname, username, password) 

{ 

var admin = { 
     "firstname": firstname, 
     "lastname": lastname, 
     "username": username, 
     "password": password 
    }; 

db.insert(admin, function(err, newDoc) { 

     if (err) throw err; 
     console.log("Table created!"); 
     db.close(); 

}); 

}; 

exports.getAdmin = function(fnc) { 

    db.find({}, function(err, docs) { 
     fnc(docs); 

    }); 
} 

回答

0

作爲參數添加eventvalidateForm函數調用:

<form name="login" onSubmit="return validateForm(event);" action="home.html" method="post"> 
validateForm功能使用 preventDefault()

然後在進入event參數:

function validateForm(event) { 
    event.preventDefault(); 

    // other code here 

    return false; 
} 

另外require不是普通JavaScript的一部分,它在NodeJS中用於加載模塊。

您將需要加載在你的HTML JavaScript文件:

<script src="../scripts/logindb"></script> 
+0

感謝您的答覆,我會嘗試一下。 – Mannie411

+0

使用'function validateForm(event){event.preventDefault();返回false;}'阻止進入頁面。但loginvalidate.js中的代碼無法在數據庫中查詢用戶名和密碼。 – Mannie411

相關問題