Apollo Express 服务器无法启动

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

我的 httpsSever 似乎永远不会启动,因为它既不记录“服务器正在侦听端口 3001”,也不向控制台记录任何错误:

httpServer.listen(3001, () => {
  console.log('Server is listening on port 3001');
})
.on('error', (err) => {
  console.error('Server error: ', err);
});

完整的 server.js 是:

import path from 'path';
import dotenv from 'dotenv';

dotenv.config();

import { authMiddleware } from './utils/auth.js';

import { connection as db } from './config/connection.js';

import { ApolloServer } from 'apollo-server-express';
import { createServer } from 'http';
import express from 'express';
import { ApolloServerPluginDrainHttpServer } from 'apollo-server-core';
import { WebSocketServer } from 'ws';
import { useServer } from 'graphql-ws/lib/use/ws';
import { schema } from './schemas/index.js';

( async () => {

const app = express();
const httpServer = createServer(app);

const wsServer = new WebSocketServer({
  server: httpServer,
  path: '/graphql',
});

const serverCleanup = useServer({ schema }, wsServer);

const cors = require('cors');
app.use(cors());

app.use(express.json());
app.use(express.urlencoded({ extended: false }));

const indexRoute = require('./routes/index');

app.use('/api', indexRoute); 

if (process.env.NODE_ENV === 'production') {
  app.use(express.static(path.join(__dirname, '../client/build')));
}

app.get(['/', '/login', '/signup'], (req, res) => {
  res.sendFile(path.join(__dirname, '../client/build/index.html'));
});

const apolloServer = new ApolloServer({
  schema,
  context: authMiddleware,
  plugins: [

    ApolloServerPluginDrainHttpServer({ httpServer }),

    {
      async serverWillStart() {
        return {
          async drainServer() {
            await serverCleanup.dispose();
          },
        };
      },
    },
  ],
});

await apolloServer.start();
apolloServer.applyMiddleware({ app });

httpServer.listen(3001, () => {
  console.log('Server is listening on port 3001');
})
.on('error', (err) => {
  console.error('Server error: ', err);
});

});

在前端我得到

createHttpLink.ts:185 POST http://localhost:3001/graphql 净:: ERR_CONNECTION_REFUSED

因此端点似乎有问题。

我猜我的 server.js 设置不正确。

express graphql apollo-server
© www.soinside.com 2019 - 2024. All rights reserved.