这是我简单的graphql express应用程序

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!");
});

当我运行它时,我会出现以下错误:

 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

我该怎么修?提前谢谢!

推荐答案

看看documentation:

const { graphqlHTTP } = require('express-graphql');

请注意,它使用的解构相当于:

const graphqlHTTP = require('express-graphql').graphqlHTTP;

require('express-graphql')返回一个object,其中property被称为graphqlHTTP,这是您想要调用的函数.

你试图调用对象本身,就好像它是一个函数一样.

Node.js相关问答推荐

NodeJS缓冲区大小逻辑:为什么默认是8KB,而不仅仅是数据大小?

仅当所需文档是最后一个文档时才更新MongoDB,否则插入

未显示NPM版本

从mongodb集合中获取每分钟数据的每小时数据

MongoDB:通过匹配输入字符串或输入字符串中的单个单词进行搜索

连接到在线 redis 数据库时出错

在 getServerSideProps 中使用 EmailProvider 获取 NextAuth 会话会抛出 fs找不到模块

MongoDB - mongoose :如何查询这个? 填充()不起作用.它显示空

如何使用 Remix 仅在客户端呈现组件?

(Mongoose) 删除 TTL 字段失败

使用mongoose 创建新文档并仅取回选定的字段

部署云功能 Firebase/Stripe 时出错

使用 Webpack 和 font-face 加载字体

已安装全局 NPM 包但未找到命令

Mongoose - 保存字符串数组

如何使用 cookie 创建 HTTP 客户端请求?

将 NodeJS 用于大型项目

Express js 阻止 GET /favicon.ico

node.js 找不到模块mongodb

避免在弹性 beantalk 中重建 node_modules