【发布时间】:2019-07-16 02:59:45
【问题描述】:
我正在将我的服务器部署到 Heroku,但由于某种原因,网络显示它仍在向 localhost 发出请求,而不是动态地向 process.env.PORT 注入端口号
这是我的服务器的设置。
require('dotenv').config();
const express = require("express");
const graphqlHTTP = require("express-graphql");
const schema = require('./schema/schema');
const mongoose = require('mongoose');
const cors = require('cors');
const bodyParser = require('body-parser');
mongoose.connect(process.env.mongodburi, { useNewUrlParser: true })
mongoose.connection.once('open', ()=>{
console.log('Connected to database');
});
const app = express();
app.use(cors());
app.use(express.static("public"));
app.use('/graphql', bodyParser.json(), graphqlHTTP({
schema,
graphiql: true
}));
app.withCredentials = true;
app.use('/', (req, res) => res.send("Welcome to read my profile"));
const port = process.env.PORT;
app.listen(port, ()=>{
console.log(`Now listening requests on port:${port}`);
})
【问题讨论】:
-
您需要在服务器启动前运行
$ heroku config:set PORT=3333 -
@デビット,这行不通。您不能在 Heroku 上选择自己的端口。你必须使用他们给你的端口。
-
问题不在于服务器正在侦听的端口。这似乎是正确的。问题是您的客户请求的地址。请编辑您的问题并显示一些客户端代码,例如您从后端请求数据的地方。
标签: javascript express heroku graphql express-graphql