所以我目前正在使用以下代码执行查询;
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
}
答案 0 :(得分:1)
问题是在下面的行中,当您应该传递字符串时,您正在传递query
函数。
connection.query(query, function(err, row){
在这种情况下, query
应该是一个字符串。但是您将query
定义为函数(function query(){
)
如果将行更改为“ LIKE”,则应该可以进行以下操作。
connection.query("SELECT * from Users", function(err, row){