빠른 요청의 데이터를 사용하여 mysql 데이터베이스에 액세스하여 응답으로 사용하려고합니다. 그러나 약속을 사용하여 데이터를 되 찾으려 애쓰는 중입니다.promise-mysql과 bluebird를 사용하여 mysql에서 데이터를 다시 얻으려고하는데
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의 비트 : 선
TypeError: Cannot read property 'then' of undefined
을 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 문이 없으면 반환되지 않는다. –