无法在heroku上部署:.env和PORT错误



应用程序在localhost:3000上运行。我设置app.listen(3000)。然而,当我将应用程序部署到heroku时,它停止工作了。我将代码更新为:port = process.env.PORT || 80和port = process.env.PORT || 443,并添加了一个带有客户端秘密和客户端id的.env文件。将.env中的PORT设置为443,它仍然无法工作。

Server.js:

app.post('/login', (req, res) => {
const code = req.body.code
const spotifyApi = new WebApi({
redirectUri: process.env.REDIRECT_URI,
clientId:  process.env.CLIENT_ID,
clientSecret: process.env.CLIENT_SECRET
})
spotifyApi
.authorizationCodeGrant(code)
.then(data => {
res.json({
accessToken: data.body.access_token,
refreshToken: data.body.refresh_token,
expiresIn: data.body.expires_in,
})
})
.catch(err => {
res.sendStatus(400)
})
})
app.get("/lyrics", async (req, res) => {
const lyrics = 
(await lyricsFinder(req.query.artist, req.query.track)) || "Lyrics Unavailable for this Song"
res.json({lyrics})
})
port = process.env.PORT || 80

Authorization.js:

useEffect(() => {
axios.post('http://localhost:3001/login', {
code,
}).then(res => {
setAccessToken(res.data.accessToken)
setRefreshToken(res.data.refreshToken)
setExpiresIn(res.data.expiresIn)
window.history.pushState({}, null, "/")
}).catch(() => {
window.location = "/"
})
}, [code])

应用程序要么返回登录页面,要么给出POST/GET错误。

我尝试用以下代码在heroku上部署应用程序,只要我在本地主机上部署它就可以工作。我知道。listen在部署到heroku后不能工作,因为PORT是动态分配的。

app.post('/login', (req, res) => {
const code = req.body.code
const spotifyApi = new WebApi({
redirectUri: process.env.REDIRECT_URI,
clientId:  process.env.CLIENT_ID,
clientSecret: process.env.CLIENT_SECRET
})
spotifyApi
.authorizationCodeGrant(code)
.then(data => {
res.json({
accessToken: data.body.access_token,
refreshToken: data.body.refresh_token,
expiresIn: data.body.expires_in,
})
})
.catch(err => {
res.sendStatus(400)
})
})
app.get("/lyrics", async (req, res) => {
const lyrics = 
(await lyricsFinder(req.query.artist, req.query.track)) || "Lyrics Unavailable for this Song"
res.json({lyrics})
})
app.listen(3001)

在定义服务器侦听

的位置时需要使用PORT变量
const port = process.env.PORT || 3000;
app.listen(port, () => console.log(`Server running on port ${PORT}`))

最新更新