我尝试连接GraphQl和MySql,并且不想使用像sequelize这样的棘手的库...我的解析器代码:
const Query = {
users: () => {
connection.query('SELECT id, login FROM `users`', (error, results) => {
if (error) throw error;
return results;
});
},
};
响应“未定义”。如果我不使用对数据库的请求,则连接和Apollo构建响应都可以。我知道连接是异步功能,我必须深入那里,但是我输掉了这场战斗...(
请说明如何仅使用mysql库从数据库中获取数据?
您应该用承诺来包装connection.query
,请参阅Asynchronous resolvers
例如
function query(sql) {
return new Promise((resolve, reject) => {
connection.query(sql, (error, results) => {
if (error) return reject(error);
return resolve(results);
});
})
}
// ...
const findUsersSQL = 'SELECT id, login FROM `users`'
const Query = {
users: () => query(findUsersSQL)
};