#javascript #node.js #express #heroku
#javascript #node.js #экспресс #heroku
Вопрос:
У меня проблема с моим express.js код, он работает нормально для меня на localhost, но он не работает для меня на Heroku, я думаю, что есть какая-то ошибка, вот мой код и ошибки, с которыми я столкнулся
server.js
const express = require("express")
const app = express()
let PORT = process.env.PORT || 3000
//for __dirname
const path = require('path')
//Render css if it wasnt included in html file
app.use(express.static('./Pages'));
//redirect link to home page
app.get('/', function(request, response){
response.redirect('/home')
})
//home page response
app.get('/home', function(request, response){
response.sendFile(path.join(__dirname, './Pages', 'home.html'))
})
//about page response
app.get('/about', function(request, response){
response.sendFile(path.join(__dirname, "./Pages", "about.html"))
})
//listening to port
app.listen(PORT, function(){
console.log("Server is online on port: " PORT)
})
На Heroku это выдает «ошибку приложения»
он регистрирует ПОРТ, на котором он запущен, поэтому я могу сказать, что код запущен, поэтому это не проблема с моим Procfile, у него также есть «favicon.io » ошибка, и я не знаю, как это исправить
Вот мои журналы Heroku с ошибками
at=error code=H14 desc="No web processes running" method=GET path="/" host=candy-lounge.herokuapp.com request_id=f550b1f8-6152-4a01-97b3-81fec080fed5 fwd="(seems like an ip so i deleted it)" dyno= connect= service= status=503 bytes= protocol=https
2020-12-10T17:35:47.907477 00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=candy-lounge.herokuapp.com request_id=cf93d0a2-0d01-4952-b037-92cc733a9dd1 fwd="(seems like an ip so i deleted it)" dyno= connect= service= status=503 bytes= protocol=https
Комментарии:
1. Вы установили переменную среды PORT в heroku на
80
? В противном случае вам может потребоваться перейти кyourherokuapp.heroku.com:3000
2. Можете ли вы показать сообщения об ошибках
3. Предполагается, что заголовок вопроса описывает проблему, с которой вы столкнулись, а не ваш опыт, когда вы пытаетесь решить проблему.
4. Вы можете видеть
server is online on the port: xxxx
в консоли.5. Я понял это,
if (process.env.NODE_ENV === 'production') { app.use(express.static('client/build')); }
отвечая вам с подробностями
Ответ №1:
Итак, я решил проблему, проблема была действительно странной, но простой, каким-то образом heroku чувствителен к именам файлов, поэтому он просто запустил сервер, но не смог найти ни одного файла, который server.js просил о