Sac*_*tus 48 javascript node.js express graphql express-graphql
这是我的简单 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!");
});
Run Code Online (Sandbox Code Playgroud)
我在运行时遇到以下错误:
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
Run Code Online (Sandbox Code Playgroud)
我该如何解决?提前致谢!
Que*_*tin 154
查看文档:
Run Code Online (Sandbox Code Playgroud)const { graphqlHTTP } = require('express-graphql');
请注意,它使用的解构相当于:
const graphqlHTTP = require('express-graphql').graphqlHTTP;
Run Code Online (Sandbox Code Playgroud)
require('express-graphql')
返回一个对象,该对象具有一个被调用的属性graphqlHTTP
,该对象是您要调用的函数。
你试图调用对象本身,就好像它是一个函数一样。
Huy*_*Huy 24
昆汀的回答是当场的。显然,npm 文档已更新,但 YouTube 上的某些教程并未更新。这就是为什么像我这样的学习者会有一定程度的困惑。仍然有过时的代码版本,例如
这个:https : //github.com/iamshaunjp/graphql-playlist/blob/lesson-36/server/app.js
这个:https : //github.com/WebDevSimplified/Learn-GraphQL/blob/master/server.js
或者这个:https : //github.com/bradtraversy/customerbase/blob/master/server.js
它们都应该更新为
const { graphqlHTTP } = require('express-graphql');
Run Code Online (Sandbox Code Playgroud)
进而
app.use('/graphql', graphqlHTTP({
schema:schema,
graphiql:true
}));
Run Code Online (Sandbox Code Playgroud)
小智 9
您可以使用
const gqlHTTP = require('express-graphql');
app.use('/graphql', gqlHTTP.graphqlHTTP({
// something
}))
Run Code Online (Sandbox Code Playgroud)
该代码是用早期版本的express-graphql
.
在 v0.10.0 之前,您可以使用
var graphqlHTTP = require('express-graphql');
Run Code Online (Sandbox Code Playgroud)
v0.10.0 之后,您需要使用
var { graphqlHTTP } = require('express-graphql');
Run Code Online (Sandbox Code Playgroud)
只是为了让它更清楚:
在“express-graphql”返回直接函数或带有该函数的类之前,我们可以将其分配给任何变量,例如 graphqlServer
const graphqlServer = require('express-graphql');
现在,它返回包含一个名为“graphqlHTTP”的函数的整个对象。因此代码应该是
const { graphqlHTTP } = require('express-graphql');
并建立联系,
app.use('/graphql', graphqlHTTP({
// your config
}));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
22695 次 |
最近记录: |