У меня проблема с моим кодом 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
Можете ли вы показать сообщения об ошибках
я отправил логи в редакцию
Название вопроса должно описывать проблему, с которой вы столкнулись, а не ваш опыт, когда вы пытаетесь решить проблему.
я думаю, что heroku автоматически устанавливает его, и это действительно так, иногда порт не 3000, он меняется и работает для других моих приложений, не знаю об этом
Ну, все ушли, я думаю, я просто удаляю это приложение, не знаю, что, черт возьми, я должен делать с этой странной штукой, которая не работает по неизвестной причине.
Вы видите server is online on the port: xxxx
в консоли.
да, это так, что странно, так как это означает, что это должно работать
ааааааа я опять один..
Я получил это, if (process.env.NODE_ENV === 'production') { app.use(express.static('client/build')); }
отвечая вам с подробностями
но я не понимаю, зачем это нужно? мои другие приложения работают нормально без этой строки кода, что пошло не так?
я добавил это, все та же проблема
наконец, попробуйте использовать process.cwd()
вместо __dirname
Давайте продолжим обсуждение в чате.
Итак, я решил проблему, Проблема была действительно странной, но простой, каким-то образом heroku чувствителен к регистру имен файлов, поэтому он просто запустил сервер, но не смог найти ни одного файла, который запросил server.js.
Вы установили переменную среды PORT в героку на
80
? В противном случае вам может понадобиться пойти вyourherokuapp.heroku.com:3000