我遇到NodeJS和node-mysql的问题。出于某种原因,在我的本地环境中,我能够连接到数据库并访问端点以更新和插入信息。我正在使用mac os x Sierra进行开发。我在我的开发服务器上使用Ubuntu 16.04,我只是在端口80上运行节点。
我的connection.js文件看起来像这样。
var mysql = require('mysql');
function Connection() {
this.pool = null;
this.init = function() {
this.pool = mysql.createPool({
connectionLimit: 100,
host: 'localhost',
user: 'Miguel',
password: 'thepassword',
database: 'lavishwebLogin',
port:'3306'
});
};
this.acquire = function(callback) {
this.pool.getConnection(function(err, connection) {
callback(err, connection);
});
};
}
module.exports = new Connection();
我的端点看起来像这样......
this.login = function(req, res){
connection.acquire(function(err, con) {
con.query('SELECT * FROM users WHERE Email = "' + req.Email + '";', function(err, result) {
if(!err){
if(bcrypt.compareSync(req.Password, result[0].Pass) == true){
result[0].Pass = "";
res.send(result[0])
con.release();
}
} else {
res.send(err)
con.release()
}
});
});
}
错误我在控制台中收到错误响应,如下所示
我在终端中收到错误,就像这样。
build.js:1275 POST http://lavishweb.com/api/login net :: ERR_CONNECTION_REFUSED
无法读取undefined的属性'query' 在/root/syn-tacticsolutions/api/users/users.js:38:13 在/root/syn-tacticsolutions/connection.js:18:7
在您说它与权限有关之前... 我在v-server中调用了这个
mysql -u Miguel -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 28
Server version: 5.7.16-0ubuntu0.16.04.1 (Ubuntu)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
非常感谢任何帮助。我到处寻找它可能无法正常工作的原因。我真的很难过。
答案 0 :(得分:0)
好的,我发现了这个问题。因此,连接到同一系统上的数据库服务器时,由于某种原因,localhost不正确。我最不得不做的是为我的远程服务器的静态外部IP地址(而不是127.0.0.1)创建一个用户,然后使用该用户访问它。
mysql -u root -p
password: thepassword
>create user 'user'@'ip' identified by 'thepassword';
>grant all on *.* to 'user'@'ip';
>flush privileges;
>exit;
this.init = function() {
this.pool = mysql.createPool({
host: 'ip',
user: 'user',
password: 'thepassword',
database: 'table'
});
};
一切正常。耶!!