Первая ошибка получена при запуске
/Users/mrzgmac/programming/sri/entrance-task-1/node_modules/sequelize/lib/sequelize.js:175
throw new Error('Dialect needs to be explicitly supplied as of v4.0.0');
^
Error: Dialect needs to be explicitly supplied as of v4.0.0
at new Sequelize (/Users/mrzgmac/programming/sri/entrance-task-1/node_modules/sequelize/lib/sequelize.js:175:13)
at Object.<anonymous> (/Users/mrzgmac/programming/sri/entrance-task-1/models/index.js:7:19)
at Module._compile (module.js:612:30)
...
Быстрый поиск по доке подсказал формат подключения для sqlite. Пофиксил в models/index.js:7:19.
Запустилось.
Далее я проверял все ли запросы выполняются. Обнаружились следующие проблемы
-
Не выполнялся запрос
events. Анализresolvers/query.jsпоказал что в соответствующем резолвереeventsв файндерfindAllпервым передавался несуществующий агрументarguments. Заменил на по аналогии на{}как в резолвере дляusers. -
Глядя в код
resolvers/index.jsзаодно попробовал запроситьusersиroomдляevent. Они возвращалиnull. Стало понятно, что причина в том, что у резолверов забылиreturn. Пофиксил -
Обнаружились проблемы в мутаторах
addUserToEvent- не был имплементированchangeEventRoom- вsetRoom()передавался не та переменная, так же он ничего не возвращал.
- Так же добавил middlware для CORS, чтобы сервер отвечал за запросы со стороннего хоста (для обработки запросов с dev сервера create-react-app)
5 Добавил строчку avatarUrl: String в typeDefs.js в UserInput для возможности создавать пользователей с аватарами.
Написано для Node.js 8 и использует библиотеки:
- express
- sequelize
- graphql
Код содержит ошибки разной степени критичности. Некоторых из них стилистические, а некоторые даже не позволят вам запустить приложение. Вам необходимо найти и исправить их.
Пункты для самопроверки:
- Приложение должно успешно запускаться
- Должно открываться GraphQL IDE - http://localhost:3000/graphql/
- Все запросы на получение или изменения данных через graphql должны работать корректно. Все возможные запросы можно посмотреть в вкладке Docs в GraphQL IDE или в схеме (typeDefs.js)
- Не должно быть лишнего кода
- Все должно быть в едином codestyle
npm i
npm run dev
Для сброса данных в базе:
npm run reset-db