私は個人的なプロジェクトの作業を実際に始めることができるようにnode.jsを学習しようとしています。私は、 "Learning node.js"(Marc Wandschneiderによる)という本の例に従おうとしています。私は、この時点で、彼の例を練習することを断念し、自分のコードを私の練習用コードのフレームワークとして使用することにしました。node.jsからRDSデータベースに接続
私のやっていることは、自分のRDSデータベースに接続している(いいえ、私はElastic Beanstalk、btwを使用していません)、そしてテーブルの1つの内容を出力することだけです。十分に簡単だと思われますが、私はそれを(コードブックに基づいて)コードを覚えていると、接続しようとしているように見えますが、その過程でハングアップしてしまいます。これは私のコードです:
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();
})
これは私がmysql.createConnection()
に渡される引数にdatabase
メンバーを入れて最初の試み、より優れている、そしてそれは、データベースが不明であったことを訴えました。どちらの場合も「エラーが発生しました...」または「すべて正常に完了しました!ウィンドウに出力します。
何か非同期のものが起こっていて、何らかの非終端の無限ループなどが発生していますか?これをどうやって解決するのですか?それは単にコメントアウトすることができますので、
は、私の例でも引用さGitHubのコードのいずれもが、そのpool
変数を使用します
本は、関連するGitHub page
NOTEを持っています。このコードをコピー、貼り付け、実行する前に、npm install async
、npm install mysql
(指し示すダミーRDSデータベースを作成してlocations
テーブルを含む)と言うだけです。
EDIT:
私はdatabase
で問題を修正しました。私は、データベース名が ' - 'ではなく '_'であることに気付きました。同じ問題(コードがハング)それでも...