Здравствуйте уважаемые разработчики!
Я сейчас осваиваю node.js и в том числе graphql для работы с mongodb.
Собственно дошел я до такой задачи, что мне нужно разделить все resolver'ы, чтобы они были в отдельных файлах, как:
./queries/...... - файлы запросов к ДБ
и
./mutations/...... - файлы изменений в БД
ну и по аналогии еще подписки(хотя пока их нет).
И так мой код где у меня сейчас хранятся все резолверы:
import helloWorld from './queries/helloWorld'; //для проверки выноса запроса в сторонний файл
const { User } = require('../models/abracode');
export default {
Query: {
helloWorld, //всё работает!
// eslint-disable-next-line no-return-await
getUsers: async () => await User.find({}).exec()
},
Mutation: {
addUser: async (_, args) => {
try {
const response = await User.create(args);
return response;
} catch(e) {
return e.massage;
}
},
removeUser: async (_, args) => {
try {
await User.remove(args);
return 'OK!';
} catch(e) {
return 'catch';
}
}
}
};
Моя схема, она вынесена в отдельный файл 'schema.gql':
type Users {
id: ID!
firstName: String,
lastName: String
}
type Query {
helloWorld: String
getUsers: [Users]
}
type Mutation {
addUser(firstName: String!, lastName: String!): Users
removeUser(firstName: String!, lastName: String!): Users
}
В итоге всё работает!
Но мне надо сделать так, чтобы можно было: getUsers, addUser и removeUser - вынести также как и файл helloworld и подключить его.
Немного не могу понять как это сделать: в самом файле helloWorld.js написано элементарно:
export default () => 'hello world!!!!';
Где-то я что-то упускаю, не могу понять что. Заранее спасибо!