apollo-server-express: ^2.2.2express: ^4.16.4I have code below, it's typescript.
import express from 'express'
import { ApolloServer } from 'apollo-server-express'
import jwt from 'express-jwt'
import { resolvers, types } from './types'
import config from '../config'
const authMiddleware = jwt({
secret: config.JWT_SECRET,
credentialsRequired: false,
})
const graphqlApp = express()
const apolloServer = new ApolloServer({
typeDefs: types,
resolvers,
playground: true,
context: ({ req }) => ({
user: req.user,
}),
})
apolloServer.applyMiddleware({
app: graphqlApp,
path: '/',
})
graphqlApp.use(express.json())
graphqlApp.use(authMiddleware)
export default graphqlApp
When i trying compile code within tsc, i get this:
D:\Wampir\projects\web\movie-platform\node_modules\apollo-server-core\dist\ApolloServer.js:127
throw Error('Apollo Server requires either an existing schema, modules or typeDefs');
^
Error: Apollo Server requires either an existing schema, modules or typeDefs
at new ApolloServerBase (D:\Wampir\projects\web\movie-platform\node_modules\apollo-server-core\dist\ApolloServer.js:
127:23)
at new ApolloServer (D:\Wampir\projects\web\movie-platform\node_modules\apollo-server-express\dist\ApolloServer.js:4
4:1)
at Object.<anonymous> (D:\Wampir\projects\web\movie-platform\dist\server\graphql\index.js:16:22)
at Module._compile (internal/modules/cjs/loader.js:688:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
at Module.load (internal/modules/cjs/loader.js:598:32)
at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
at Function.Module._load (internal/modules/cjs/loader.js:529:3)
at Module.require (internal/modules/cjs/loader.js:636:17)
at require (internal/modules/cjs/helpers.js:20:18)
types.tsimport { userResolvers, userTypes } from './user'
export const resolvers = {
...userResolvers,
}
export const types = [userTypes]
user.tsimport { gql } from 'apollo-server-express'
export const userTypes = gql`
extend type Query {
getUser: User
}
type User {
first_name: String!
last_name: String!
age: Int!
}
`
export const userResolvers = {
getUser: () => ({
first_name: 'Jhon',
last_name: 'Doe',
age: 12,
}),
}
What i'm doing wrong?
schema.js
import { makeExecutableSchema } from 'apollo-server-express';
export default makeExecutableSchema({
typeDefs: [AppSchema],
resolvers: Resolvers
});
server.js
import Schema from './graphql/schema';
const apolloServer = new ApolloServer({
schema:Schema,
playground: true,
context: ({ req }) => ({
user: req.user,
}),
})
It's work for me. try it.
@rakibulalam
Yeah, it's work for me too.
Thanks a lot.
Most helpful comment
schema.js
server.js
It's work for me. try it.