如何在快速节点js中使用其他模块的变量

时间:2017-02-06 10:33:39

标签: node.js express

我有一个文件,我写了以下代码:

    var db_abc= express();
    var mysql = require('mysql')

        var connection = mysql.createConnection({
            host: 'localhost',
            user: 'root',
            password: '',
            database: 'abc_db'
        })

        connection.connect(function (err) {
        if (err) throw err
        console.log('You are now connected...')

    })

module.exports = db_abc;

现在我想在其他文件中使用连接来编写查询:

var db_abc = require('../db_abc')

db_abc.connection.query('SELECT tid, type, status, ' +
    'created, modified, jdp_response FROM jdp_tb_trade ' +
    'WHERE status="TRADE_FINISHED" AND type = "tmall_i18n" ' +
    //'AND DATE_ADD(NOW(), INTERVAL ' + start + ' MINUTES) <= modified' +
    // 'AND DATE_ADD(NOW(), INTERVAL ' + end + ' MINUTES) >= modified' +
    'ORDER BY modified',
    function (err, results) {
        if (!err)
            console.log('The solution is: ', results);
        else
            console.log('Error while performing Query.');

    });

如果我在同一个文件中写上面的查询,我已经定义了连接,那么它就会成功执行。但是当我使用db_abc模块并导入它并使用连接变量来调用查询时,它表示查询未定义。

有关如何在快递中使用其他模块的变量的任何建议将不胜感激。

1 个答案:

答案 0 :(得分:1)

您正在导出db_abc这是一个express应用程序。 Express没有connection变量。

我认为您想要做类似

的事情
var db_abc= express();
var mysql = require('mysql')

var connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: '',
  database: 'abc_db'
})

connection.connect(function (err) {
  if (err) throw err
  console.log('You are now connected...')
})

module.exports = {
  connection, // Export connection here
};

然后你可以像这样使用它

var db_abc = require('../db_abc')
db_abc.connection...