apollo-client reactjs 404(未找到)

问题描述 投票:0回答:1

y React 应用程序总是向 http://localhost:3000 发送 post 请求,并且会抛出如下错误:

createHttpLink.ts:121 POST http://localhost:3000/[object%20Object] 404 (Not Found)

当我尝试将我的 uri 传递给 HttpLink 时,就会发生这种情况,但当我直接将我的 uri 传递给 ApolloClient 时,它工作正常 我已经尝试了许多来源的解决方案,但仍然不适合我,请帮助 我该如何解决这个问题

这是我的代码。

客户端

    const httpLink = new HttpLink({
    uri: "http://localhost:4000/graphql",
    credentials: "include"
    });
    const wsLink = new WebSocketLink({
    uri: ws://localhost:4000/graphql,
    options: {
    reconnect: true
    }
    });

    const splitLink = split(
    ({ query }) => {
    const definition = getMainDefinition(query)
    return (
    definition.kind === 'OperationDefinition' &&
    definition.operation === 'subscription'
    )
    },
    wsLink,
    httpLink
    )
    const client = new ApolloClient({
    uri: splitLink,
    cache: new InMemoryCache(),
   
    export default function ApolloProvider(props){
    return <Provider client={client }{...props}/>
    }

服务器端

const SERVER_PORT = 4000;
const DB_URI = "xxxxxxxxxxxxxxx";
const app = express();
const pubsub = new PubSub();

app.use(cors())

const apolloServer = new ApolloServer({
typeDefs: gql${typeDefs},
resolvers,
context: ({ req }) => ({ req, pubsub })
});

const db = async () => {
try {
const success = await mongoose.connect(DB_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
});
console.log('DB Connected');
} catch (error) {
console.log('DB Connection Error', error);
}
};
db();

apolloServer.applyMiddleware({ app });

const httpserver = http.createServer(app);

apolloServer.installSubscriptionHandlers(httpserver);

app.get('/', function (req, res) {
res.json({
data: 'BLANK PAGE !'
      });
});

httpserver.listen({ port: SERVER_PORT }, () => {
console.log(🚀 Server ready at http://localhost:${SERVER_PORT} let's start!)
})
react-apollo apollo-client apollo-server
1个回答
-1
投票

我通过改变

解决了这个问题
import { ApolloClient } from '@apollo/client';

import { ApolloClient } from 'apollo-client';
© www.soinside.com 2019 - 2024. All rights reserved.