Экспресс-сервер Node.js работает на локальном хосте, но имеет проблемы на хосте Heroku

У меня проблема с моим кодом express.js, он нормально работает для меня на локальном хосте, но не работает для меня на Heroku, я думаю, что это какая-то ошибка, вот мой код и ошибки, с которыми я столкнулся

сервер.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.info("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

Вы установили переменную среды PORT в героку на 80? В противном случае вам может понадобиться пойти в yourherokuapp.heroku.com:3000

James Paterson 10.12.2020 18:35

Можете ли вы показать сообщения об ошибках

Aalexander 10.12.2020 18:36

я отправил логи в редакцию

French Noodles 10.12.2020 18:37

Название вопроса должно описывать проблему, с которой вы столкнулись, а не ваш опыт, когда вы пытаетесь решить проблему.

Teemu 10.12.2020 18:38

я думаю, что heroku автоматически устанавливает его, и это действительно так, иногда порт не 3000, он меняется и работает для других моих приложений, не знаю об этом

French Noodles 10.12.2020 18:38

Ну, все ушли, я думаю, я просто удаляю это приложение, не знаю, что, черт возьми, я должен делать с этой странной штукой, которая не работает по неизвестной причине.

French Noodles 10.12.2020 18:44

Вы видите server is online on the port: xxxx в консоли.

JustRaman 10.12.2020 18:46

да, это так, что странно, так как это означает, что это должно работать

French Noodles 10.12.2020 18:47

ааааааа я опять один..

French Noodles 10.12.2020 18:54

Я получил это, if (process.env.NODE_ENV === 'production') { app.use(express.static('client/build')); } отвечая вам с подробностями

JustRaman 10.12.2020 18:59

но я не понимаю, зачем это нужно? мои другие приложения работают нормально без этой строки кода, что пошло не так?

French Noodles 10.12.2020 19:00

я добавил это, все та же проблема

French Noodles 10.12.2020 19:02

наконец, попробуйте использовать process.cwd() вместо __dirname

JustRaman 10.12.2020 19:13

Давайте продолжим обсуждение в чате.

French Noodles 10.12.2020 19:14
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
14
489
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Итак, я решил проблему, Проблема была действительно странной, но простой, каким-то образом heroku чувствителен к регистру имен файлов, поэтому он просто запустил сервер, но не смог найти ни одного файла, который запросил server.js.

Другие вопросы по теме