Hello,
I wanted to change the example code in src/index.ts to use apollo/server/express4 in prisma-examples/typescript/graphql-typegraphql at latest · prisma/prisma-examples · GitHub , but it throws me the error: TypeError: graphqlError.toJSON is not a function. Because of this, nothing is working.
Here is my src/index.ts modified code:
import 'reflect-metadata'
import * as tq from 'type-graphql'
import { PostCreateInput, PostResolver, SortOrder } from './PostResolver'
import { UserResolver } from './UserResolver'
//import { ApolloServer } from 'apollo-server'
//import { ApolloServer } from '@apollo/server';
//import { startStandaloneServer } from '@apollo/server/standalone';
import { ApolloServer } from '@apollo/server';
import { expressMiddleware } from '@apollo/server/express4';
import { ApolloServerPluginDrainHttpServer } from '@apollo/server/plugin/drainHttpServer'
import express from 'express';
import http from 'http';
import bodyParser from 'body-parser';
import { DateTimeResolver } from 'graphql-scalars'
import { context } from './context'
import { GraphQLScalarType } from 'graphql'
import cors from 'cors'
const app2 = async () => {
tq.registerEnumType(SortOrder, {
name: 'SortOrder',
});
const schema = await tq.buildSchema({
resolvers: [PostResolver, UserResolver, PostCreateInput],
scalarsMap: [{ type: GraphQLScalarType, scalar: DateTimeResolver }],
});
const app = express();
const httpServer = http.createServer(app);
// Set up Apollo Server
const server = new ApolloServer({
schema,
plugins: [ApolloServerPluginDrainHttpServer({ httpServer })],
});
await server.start();
app.use(
'/',
cors<cors.CorsRequest>(),
bodyParser.json(),
expressMiddleware(server),
);
await new Promise<void>((resolve) => httpServer.listen({ port: 9000 }, resolve));
console.log(`🚀 Server ready at http://10.0.0.212:9000`)
}
app2()