Сервер Apollo/Express не работает в среде nx.dev
Я пытаюсь создать простой бэкэнд graphql с помощью apollo-server-express.
Выполнение этого в приложении expressJS (репозиторий Github) работает должным образом:
Выполнение запроса
query {
search {
result
}
}
на localhost:4000/graphql возвращает result
как и ожидалось.
решатель
module.exports = {
Query: {
search: async (obj, { name, value }) => {
return 'result'
}
}
}
Теперь я хотел бы использовать этот backend expressJS в среде nx.dev (репозиторий Github). Я настроил здесь то же самое, но запуск сервера и выполнение запроса на игровой площадке graphQL возвращаетnull
.
Я не понимаю, что не так.
Это моя структура:
main.ts
const express = require('express');
const { ApolloServer } = require('apollo-server-express');
const typeDefs = require('./graphql/types')
const resolvers = require('./graphql/resolvers')
const app = express();
const server = new ApolloServer({ typeDefs, resolvers });
server.applyMiddleware({ app });
app.listen({ port: 4000 }, () =>
console.log(` Server ready at http://localhost:4000${server.graphqlPath}`)
)
структура
+-- graphql
| +-- author
| | +-- author.resolvers.js
| | +-- author.graphql
| +-- search
| | +-- search.resolvers.js
| | +-- search.graphql
| +-- resolvers.js <<< Merges all `*.resolvers.*` files
| +-- types.js <<< Merges all `*.graphql` files
resolvers.js
const path = require('path');
const { mergeResolvers } = require('@graphql-tools/merge');
const { loadFilesSync } = require('@graphql-tools/load-files');
const resolversArray = loadFilesSync(path.join(__dirname, "./**/*.resolvers.*"));
module.exports = mergeResolvers(resolversArray);
types.js
const path = require('path');
const { loadFilesSync } = require('@graphql-tools/load-files');
const { mergeTypeDefs } = require('@graphql-tools/merge');
const typesArray = loadFilesSync(path.join(__dirname, './**/*.graphql'))
module.exports = mergeTypeDefs(typesArray, { all: true })
graphql / поиск / search.graphql
type Query {
search(name: String, value: String): [String]
}
graphql / поиск /search.resolvers.js
module.exports = {
Query: {
search: async (obj, { name, value }) => {
return 'result'
}
}
}