未定义的查询功能

时间:2018-12-28 18:52:17

标签: javascript mysql node.js

所以我目前正在使用以下代码执行查询;

var mysql = require('mysql');

var config = require('./config');
var pool = mysql.createPool(config.mysql);

function query(statement){
  return new Promise(function(resolve, reject){
    pool.getConnection(function(err, connection) {
      if(err) reject(err);

      connection.query(statement, function(err, row){
        connection.release();

        if(err){
          reject(err);
        }

        resolve(row);        
      })
    });
  });
}

module.exports = {
  pool: pool,
  query: query
};

无论何时调用查询函数,都会导致未定义的错误;

TypeError: Cannot read property 'query' of undefined

我完全不知道为什么会这样,这可能是connection.getConnection没有返回正确的连接,这是否意味着我的createPool函数中的凭据错误?

config.mysql

mysql: {
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'site',
    connectionLimit : 10,           
    multipleStatements : true  
  }

1 个答案:

答案 0 :(得分:1)

问题是在下面的行中,当您应该传递字符串时,您正在传递query函数。

connection.query(query, function(err, row){
在这种情况下,

query应该是一个字符串。但是您将query定义为函数(function query(){

如果将行更改为“ LIKE”,则应该可以进行以下操作。

connection.query("SELECT * from Users", function(err, row){