【问题标题】:accessing a node moudule from javascript file using jquery使用 jquery 从 javascript 文件访问节点模块
【发布时间】:2012-01-20 03:06:18
【问题描述】:

我正在使用 nodejs/javascipt/jquery/html/css 和 mysql 构建一个网站。

假设我有一个接收用户输入的 html 登录页面(姓名 && psw) 我有一个文件:

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())});

});

没有 require 它可以正常工作。(我也尝试将 require 移到 ready 函数中) 出于某种原因,它不允许我使用另一个模块。 有什么帮助吗?

谢谢你:)

【问题讨论】:

  • 看起来您在一个文件中混合了客户端/服务器端 JavaScript。 require 是 Node,$(document).ready 是 jQuery。 (另外,你拼错了require。)你想完成什么?在客户端需要一个节点(服务器端)模块?
  • 我正在尝试访问我的数据库以查看用户和密码是否正确。所以我有一个 js 文件,它连接到数据库(使用我的 sql)并为在数据库中做的不同事情提供了一堆函数。其中一个,看看他是否存在..

标签: javascript jquery node.js


【解决方案1】:

这样在客户端文件中调用服务器端函数是不可能的。但是,查看您的评论,我建议使用 NowJS 库。

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();
    }
  });
});

【讨论】:

    猜你喜欢
    • 2019-04-09
    • 2018-07-22
    • 2016-01-15
    • 2016-07-12
    • 2018-08-07
    • 2022-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多