gpt4 book ai didi

mysql - 从node.js连接到RDS数据库

转载 作者:行者123 更新时间:2023-11-29 11:24:35 34 4
gpt4 key购买 nike

我正在尝试学习node.js,以便我可以真正开始从事我的个人项目。我一直在尝试遵循“学习node.js”(Marc Wandschneider 着)一书中的示例。此时,我决定放弃练习他的示例,直接使用他的代码作为我练习代码的框架。

在我的练习代码中,我想做的就是连接到我的 RDS 数据库(不,我没有使用 Elastic Beanstalk,顺便说一句),并输出其中一个表的内容。看起来很简单,但是当我编写它的代码(基于本书)时,它似乎尝试连接,但在过程中挂断了。这是我的代码:

var pool = require('generic-pool');
var async = require('async');
var mysql = require('mysql');

var host = "<database-name>.cu8hvhstcity.us-west-2.rds.amazonaws.com",
database = "<database-name>",
user = "<username>",
password = "<someLongPassword>";

var dbClient;

async.waterfall([
// 1. establish connection to database
function (callback) {
console.log("Connecting to database " + database + "...");
dbClient = mysql.createConnection({
host: host,
database: database,
user: user,
password: password,
port: 3306
});
dbClient.connect();
},
// 2. select all from a table (let's go for locations)
function (cb)
{
var query = "SELECT * FROM locations"
console.log("running query \"" + query + "\"...");
dbClient.query(query, cb);
},

function (rows, fields, callback)
{
console.log(fields);
for (var i = 0; i < rows.length; i++)
{
console.log(JSON.stringify(rows, null, '\t'));
}
}



], function (err, results) {
if (err)
{
console.log("An error occurred...");
console.log(err);
}
else
{
console.log("Everything successfully completed!");
}
dbClient.end();
})

这比第一次尝试要好,当我将database成员放入传递给mysql.createConnection()的参数时,它提示数据库未知。在这两种情况下,都没有“发生错误...”或“一切都成功完成!”输出到窗口。

是否有任何异步的事情发生导致某种非终止的无限循环或其他什么?我该如何解决这个问题?

这本书有一个关联的 GitHub page

注意:

我的示例和引用的 GitHub 代码都没有使用该 pool 变量,因此可以简单地将其注释掉。要自己运行它,您所需要做的就是说 npm install async,npm install mysql (以及创建一个指向的虚拟 RDS 数据库,其中包含 locations 表),然后再复制、粘贴和运行此代码。

编辑:

我修复了数据库的问题。我意识到数据库的名称使用了“_”,而不是“-”。同样的问题(代码挂起)仍然存在...

最佳答案

我做了以下事情:

在数组中的第二个函数中,我需要两个参数,而不是一个。我这样修复:function(results, cb)第三个函数只需要callback(null)

关于mysql - 从node.js连接到RDS数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38451980/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com