无法发布 /graphql

Posted

技术标签:

【中文标题】无法发布 /graphql【英文标题】:Cannot POST /graphql 【发布时间】:2019-04-01 20:19:42 【问题描述】:

我正在尝试设置 graphiql API,但我在控制台的屏幕和网络选项卡上收到此错误,我不明白出了什么问题,因为我在其他项目中运行了相同的样板代码。我试过删除httpServer,尝试添加cors,检查了几乎所有与此错误相关的帖子但无法弄清楚,请建议Cannot POST /graphql

import express from 'express';
import  createServer  from 'http';
import bodyParser from 'body-parser';
import  graphiqlExpress, graphqlExpress  from 'apollo-server-express';
import  makeExecutableSchema  from 'graphql-tools';
import typeDefs from './graphql/schema';
import resolvers from './graphql';


const schema = makeExecutableSchema(
    typeDefs,
    resolvers
)

const app = express();

app.use(bodyParser.json());

//issue is here
app.use(
    '/graphiql',
    graphiqlExpress(
      endpointURL: "/graphql"
    )
);


app.use(
    '/graphiql',
    graphqlExpress(req => (
      schema,
      context: 
        user: req.user
      
    )),
);

const httpServer = createServer(app);

httpServer.listen(3000, err => 
    if (err) 
      console.error(err);
     else 
      console.log(`App listen to port 3000`);
    
  );

【问题讨论】:

【参考方案1】:

您没有为/graphql 设置路由——graphqlExpressgraphiqlExpress 中间件都与/graphiql 路由一起使用。只需更新路径:

app.use(
    '/graphql',
    graphqlExpress(req => (
      schema,
      context: 
        user: req.user
      
    )),
);

【讨论】:

以上是关于无法发布 /graphql的主要内容,如果未能解决你的问题,请参考以下文章

GraphQL集成Spring和MongoDB

GraphQL-前端开发的利剑与桥梁

分分钟将 REST 转换为 GraphQL

IT人在南宁系列之架构篇 | GraphQL与微服务实战二三事

无法验证发布者怎么办

由于无法验证发布者 所以windows已经阻止此软件