Here is my simple graphql express app
const express = require('express');
const graphqlHTTP = require('express-graphql');
const app = express();
app.use(
'/graphql',
graphqlHTTP({
graphiql: true,
})
);
app.listen(4000, () => {
console.log("listening for request!");
});
I'm getting the following errors when I run it:
graphqlHTTP({
^
TypeError: graphqlHTTP is not a function
at Object.<anonymous> (D:\PersonalProjects\GraphQL\server\app.js:7:5)
at Module._compile (internal/modules/cjs/loader.js:1138:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
at Module.load (internal/modules/cjs/loader.js:986:32)
at Function.Module._load (internal/modules/cjs/loader.js:879:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47
How can I fix it? Thanks in advance!
Look at the documentation:
const { graphqlHTTP } = require('express-graphql');
Note that it uses destructuring equivalent to:
const graphqlHTTP = require('express-graphql').graphqlHTTP;
require('express-graphql')
returns an object with a property called graphqlHTTP
that is the function you want to call.
You're trying to call the object itself as if it was a function.