Приложение, размещенное на Heroku, не может загрузить веб-страницу - PullRequest
0 голосов
/ 25 июня 2018

В настоящее время я работаю над приложением nodejs, которое использует Express для обслуживания веб-страницы.Это также удваивается как бот разногласия.Когда я запускаю приложение на локальном хосте, части диска и веб-страницы работают нормально.Однако, когда я размещаю его на Heroku, диск-бот работает нормально, однако веб-страница не загружается при просмотре веб-страницы в режиме реального времени.

Вот мой код index.js.

const fs = require('fs'), discord = require('discord.js'), express = require('express'), crypto = require('crypto'), bodyParser = require('body-parser'), path = require('path'), archiver = require('archiver')
const goonsUp = require(__dirname + '/commands/goonsUp/goonsUp')
const roastMe = require(__dirname + '/commands/roastMe/roastMe')

var config = JSON.parse(fs.readFileSync('config.json')),
client = new discord.Client()

roastMe(client, discord)
goonsUp(client, discord)
client.login(config.token)

var app = express()
var urlencodedParser = bodyParser.urlencoded({ extended: false })

app.set('view engine', 'ejs')

app.get('/', (req, res)=>{
    client.channels.get('457201559772594211').send('Test')
    res.render('fileReq')
})

app.post('/', urlencodedParser, (req, res)=>{
    var hash = crypto.createHmac('sha256', 
    req.body.password).digest('hex')
if(hash==='709f8df16dca8b307a2a8ea13356eb1f3e138f117eb6592e4e030478bef1bb04'){
    var downloads = JSON.parse(fs.readFileSync(__dirname + '/download.json'))
    var archive = archiver('zip')
    var output = fs.createWriteStream(__dirname + '/downloads.zip')
    archive.pipe(output)

    for(var i = 0; i < downloads.length; i++){
        var path = downloads[i]
        archive.append(fs.readFileSync(path), {name: path.replace(/^.*[\\\/]/, '')})
    }

        archive.finalize()
        setTimeout(()=>{
            res.download(__dirname + '/downloads.zip')
        }, 2000)
    }
})

app.listen(process.env.PORT || 3000, function(){

})

Из моих тестов, насколько я могу судить, запрос URL даже не попадает в приложение.Я мог сказать, потому что я сделал отчет приложения, чтобы разойтись, когда страница была запрошена, и это хорошо работало на localhost.Однако при запуске на heroku просмотр живой веб-страницы никогда не вызывается кодом, и на странице появляется ошибка приложения.Однако другие элементы бота, похоже, работают от Heroku.

Кто-нибудь знает, почему это может быть?Спасибо.

РЕДАКТИРОВАТЬ: Вот ошибка, размещенная в журналах

2018-06-27T04:49:32.337810+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=chiraag-discord-bot.herokuapp.com request_id=c737acac-7313-4ece-8359-d3bca72e1cc0 fwd="24.5.143.134" dyno= connect= service= status=503 bytes= protocol=https
2018-06-27T04:49:32.981684+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=chiraag-discord-bot.herokuapp.com request_id=ec9c3cf8-3af9-4bcc-b1b3-bb84bb6c958c fwd="24.5.143.134" dyno= connect= service= status=503 bytes= protocol=https

1 Ответ

0 голосов
/ 25 июня 2018

В прошлом у меня была такая же проблема с Heroku и Node.Для меня это исправило изменение оператора номера порта «ИЛИ» на 8080. Порт 8080, насколько я понимаю, является вторичным номером, используемым, когда 80 не может.Изменение кода будет достаточно простым, как видно из фрагмента ниже.

app.listen(process.env.PORT || 8080, function(){})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...