2012-01-19 54 views
0

我正在使用nodejs/javascipt/jquery/html/css和mysql構建網站。使用jquery從javascript文件訪問節點模塊

可以說,我有一個具有接收來自用戶(名& & PSW) 輸入一個HTML登錄頁面,我有一個文件:

login.js: 

var node = reuqire('some module'); 

$(document).ready(function() { 

var username = $('#name'); 
var password = $('#password'); 
$('#login_button').click(function(){ login(username.val(),password.val())}); 

}); 

而不需要它工作正常(我也試圖將需求移入就緒功能) 由於某些原因,它不允許我使用其他模塊。 有幫助嗎?

謝謝:)

+2

它看起來就像你在一個文件中混合客戶端/服務器端JavaScript。 'require'是Node,'$(document).ready'是jQuery。 (另外,你拼錯了'require'。)你想完成什麼?在客戶端需要一個Node(服務器端)模塊? – pimvdb

+0

我想訪問我的數據庫,看看用戶和密碼是否正確。 所以我有一個連接到數據庫(使用我的SQL)的js文件,並提供了一堆用於數據庫中不同事情的函數。其中一人看他是否存在.. – user690936

回答

0

在客戶端文件調用服務器端功能,如這是不可能的。然而,看着你的評論,我建議NowJS圖書館。我們不允許你在一個文件中混合使用客戶端/服務器端JavaScript(因爲這樣做沒有意義,如果這樣做會帶來很高的安全風險)。但它確實允許你定義一個函數服務器端(它將例如檢查證書),你可以在沒有額外麻煩的情況下調用客戶端。當該服務器端函數完成後,您可以發送一個包含結果的客戶端函數(即正確/錯誤的憑證)。這樣你就可以輕鬆實現你想要的東西。

如果你讀過的基本教程,你可以實現像這樣(部分僞代碼,因爲我不知道你是如何檢查登錄細節等做):

在服務器端:

everyone.now.checkLogin = function(username, password, callback) { 
    db.query("...", function(results) { 
    if(results.correct) { 
     callback(true); 
    } else { 
     callback(false); 
    } 
    }); 
}; 

在客戶端:

$("#login_button").click(function() { 
    var username = $("#username").val(), 
     password = $("#password").val(); 

    now.checkLogin(username, password, function(correct) { 
    if(correct) { 
     $("#correct_message").show(); 
    } else { 
     $("#wrong_message").show(); 
    } 
    }); 
}); 
相關問題