【问题标题】:How I can write this code to work properly in nodejs我如何编写此代码以在 nodejs 中正常工作
【发布时间】:2012-05-31 04:11:03
【问题描述】:

我的 nodejs 项目中有 config.js

var mysql  = require('mysql');
var db_name = 'node';
var client = mysql.createClient({
  user: 'root',
  password: 'pass',
});
client.query('USE '+db_name);

我已将它用作项目的配置文件。如何使用此代码调用 mysql 查询。

我在 user.js 中有这段代码

var global = require('./config.js');

this.CheckUserValid = function (login, pass) {
    var sql = "SELECT * FROM `user` WHERE login = ? AND pass= ?";
    global.client.query(sql, [login, pass], function selectResutl(err, results, fields) {
        if (!err) return results;
        else
            throw err;
    });
}

TypeError: Cannot call method 'query' of undefined
    at Object.CheckUserValid (C:\wamp\www\Node\user.js:6:19)

有人可以帮助我让我知道如何以更好的方式做到这一点。实际上我过去使用的是 asp.net mvc,所以我已经尝试过了。有人告诉我用 nodejs 编写代码的更好方法吗?

【问题讨论】:

    标签: html node.js object


    【解决方案1】:

    当您require() 一个文件/模块时,您得到的结果是模块通过exports 属性导出的任何内容。其他任何东西都封装在模块中,无法从外部访问。在您的情况下,您可以在 config.js 末尾添加:

    exports.client = client;
    

    这样,只要你require()你的config.js,它就可以访问。

    CommonJS 规范中定义了这种创建模块的方式:

    edit:由于 commonjs.org 似乎已关闭,这里是另一个链接,其中包含有关此类模块的信息:http://dailyjs.com/2010/10/18/modules/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      • 2019-10-02
      • 1970-01-01
      • 2014-07-13
      • 2017-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多