Например:
typeDefs
:
type User {
userId: ID!
userNme: String
userEmail: String
}
В базе данных таблица users
имеет три столбца: user_id
, user_nme
, user_email
.
Теперь клиент отправляет запрос GraphQL
с именем userById
с двумя полями: user_id
и user_nme
.
Операторы SQL
моего слоя DAO
:
async function findUserById(id: string) {
const sql = `
SELECT * FROM users WHERE user_id = ?;
`
return db('users').raw(sql, [id]);
}
Как видите, оператор SQL
выбирает все столбцы таблицы users
из базы данных.
Как сопоставить конкретные fields
клиентских сообщений с оператором SQL
select
?
Ожидаемый результат:
async function findUserById(id: string) {
const sql = `
SELECT
user_id,
user_nme
FROM users WHERE user_id = ?;
`
return db('users').raw(sql, [id]);
}
Проще говоря: я просто хочу запросить поля, которые клиент хочет запросить.