Используемые технологии:
- Apollo-сервер-экспресс для graphQL
- Сиквелиз для подключения к SQL Server
Я унаследовал базу данных, гдеполя не следуют никаким соглашениям об именах.В некоторых есть пробелы и специальные символы.Чтобы избежать каких-либо проблем, я использовал псевдоним SQL для этих полей в запросах распознавателя:
const productAttributes = [
'SAP',
['Unit/V', 'UnitVol']];
...
Query: {
product: async (parent, {SAP} , { models }) => {
const result = await models.Product.find( {
where: {
SAP: SAP
},
attributes:productAttributes,
});
return result;
},
...
Для схемы GraphQL задано следующее:
type Product {
SAP: String!
UnitVol: Int
}
При выполнении запроса с игровой площадкиполе «SAP», полученное из модели, хорошо заполнено, но псевдоним поля «UnitVol» установлен в нуль (см. изображение Результат GraphQL ).
Подробно,Sequelize хорошо выполняет следующий оператор SQL:
Executing (default): SELECT [SAP], [Unit/V] AS [UnitVol] FROM [product codes] WHERE [product codes].[SAP] = N'22736';
Описанный выше результат запроса возвращает значения с псевдонимом (extract of console.log (result)):
product codes {
dataValues:
{ SAP: '22736',
UnitVol: 9 }
},
Итаккажется, что между псевдонимом SQL, возвращаемым распознавателем, и схемой graphQL отсутствует ссылка.Буду признателен за любую оказанную помощь.