エクスプレスリクエストからのデータを使用して、mysqlデータベースにアクセスしてレスポンスとして使用しようとしています。しかし、約束を使ってデータを取り戻すのは苦労している。ライン上のpromise-mysqlとbluebirdを使用してmysqlからデータを取得するのに苦労します
TypeError: Cannot read property 'then' of undefined
を:
Expressは、私はエラーを取得しています
app.get('/loadDrinks', function(req, res) {
var q = 'SELECT * FROM `Drinks` WHERE `Name` LIKE "%' + req.query.drinks + '%"';
mysqlQ(q).then(function() {
console.log(data);
res.send(" ");
})
})
私は約束
function mysqlQ(q) {
mysql.createConnection({
host: 'localhost',
user: 'correctUser',
password: 'correctPass',
database: 'correctDB'
}).then(function(conn) {
connection = conn;
var f = connection.query(q);
//connection.end()
return f
}).then(function (rows) {
return rows;
})
}
を処理するための約束 - MySQLと青い鳥を使用していますmysqlのビットをビット67:14 は
(あなたの関数は何も返しませんでした210mysqlQ(q).then(function() {
しかしmysqlQ
はあなたのエンドポイント定義がthen
app.get('/loadDrinks', function(req, res) {
var q = 'SELECT * FROM `Drinks` WHERE `Name` LIKE "%' + req.query.drinks + '%"';
// here you had function() - without data parameter which you try to log further
mysqlQ(q).then(function(data) {
console.log(data);
res.send(" ");
});
});
内data
パラメータを欠いRows
asyncの概念を読む –
'しかし、mysqlQはRowsの値を返さなければなりません - あなたはそうだと思いますが、return文がなければ、未定義を返します –