仅将 Apollo Server 部署到 heroku 时出现问题

Problem deploying only Apollo Server to heroku

我正在将我的数据库的 Apollo 服务器部署到 heroku,但出现应用程序错误。它不仅仅是表明 get 路由有问题,它还表示应用程序有错误并且错误日志表明应用程序正在崩溃。它在本地运行良好。

我已经设置了 procfile : web: node app.js 。 我已经在删除了 procfile 的情况下进行了尝试。 我已将 playground 和 introspection 设置为 true。我看到这可能是问题所在,但似乎无济于事。 端口设置为 process.env.PORT || 8080 .

这是最小代码:

const { ApolloServer } = require('apollo-server-express');
const express = require('express');
const db = require('./models');
const typeDefs = require('./data/schema');
const resolvers = require('./data/resolvers');

const app = express();

const server = new ApolloServer({
  typeDefs,
  resolvers,
  context: { db },
  introspection: true,
  playground: true,
});

server.applyMiddleware({ app });

const PORT = process.env.PORT || 8080;

app.get('/', (req, res) => {
  res.send('hello');
});

app.listen(PORT, () => {
  console.log(`Server is ready at ${PORT}`);
});

我也在使用其他一些功能(尝试设置一个 cron 进程),但这些功能已被注释掉。

我希望通过 /get 路由至少打个招呼,或者通过 /graphql 路由来显示 playground。我没有得到这些选项。

原来我需要在package.json中添加以下内容:

    "scripts": {
        "start": "app.js",
        ...
    }

而且我需要安装 heroku 日志中列出的包 --tail,但我以前遇到过这些错误。将脚本启动键写入 package.json 文件是为了当你独立于你的反应(或客户端)端部署你的服务器时。