可能是因为在Heroku上使用了不同的端口或主机,请通过使用process.env.PORT
和process.env.IP
来动态设置端口和主机。例如,您的本地端口可能是3000,但在Heroku上可能不同。以下是一个示例代码片段:
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
const host = process.env.IP || '0.0.0.0';
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, host, () => {
console.log(`Server running on port ${port} and host ${host}`);
});
在这个例子中,我们使用process.env.PORT
设置端口。如果process.env.PORT
未定义,则回退到默认端口3000。我们还使用process.env.IP
来设置主机。如果在Heroku上运行,则主机为0.0.0.0
,否则为本地主机。确保在您的Heroku设置中设置了相应的环境变量。