Использование Socket.IO в NodeJS работает локально, но не в Heroku - PullRequest
0 голосов
/ 05 июля 2019

Я хочу создать сервер NodeJs для клиентов Android. Когда я запускаю локальный сервер, он работает отлично! Но когда я пытаюсь разместить сервер в Heroku, он не работает. Я получаю сообщение об ошибке «В приложении произошла ошибка, и ваша страница не может быть обработана. Если вы являетесь владельцем приложения, проверьте подробности в своих журналах. Это можно сделать с помощью интерфейса командной строки Heroku с помощью команды». когда я беру строку <> из index.js, она работает и на Heroku.

В логах я получаю ошибку H10: 2019-07-05T04: 09: 20.917720 + 00: 00 heroku [роутер]: at = код ошибки = H10 desc = метод "Приложение упало" = GET path = "/" ....

2019-07-05T04: 09: 21.119408 + 00: 00 heroku [роутер]: at = код ошибки = H10 desc = Метод "Приложение упало" = GET path = "/ favicon.ico" ....

В чем проблема? Большое спасибо!

index.js

const express = require('express');
app = express(),
    http = require('http'),
    server = http.createServer(app);

    // without this line it works also on Heroku
    io = require('socket.io').listen(server); 

const path = require('path')
const PORT = process.env.PORT || 5000

express()
    .use(express.static(path.join(__dirname, 'public')))
    .set('views', path.join(__dirname, 'views'))
    .set('view engine', 'ejs')
    .get('/', (req, res) => res.render('pages/index'))
    .listen(PORT, () => console.log(`Listening on ${ PORT }`))

package.json

{
  "name": "node-js-getting-started",
  "version": "0.3.0",
  "description": "A sample Node.js app using Express 4",
  "engines": {
    "node": "10.x"
  },
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "test": "node test.js"
  },
  "dependencies": {
    "ejs": "^2.5.6",
    "express": "^4.15.2"
  },
  "devDependencies": {
    "request": "^2.81.0",
    "tape": "^4.7.0"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/heroku/node-js-getting-started"
  },
  "keywords": [
    "node",
    "heroku",
    "express"
  ],
  "license": "MIT"
}

app.json

{
  "name": "Start on Heroku: Node.js",
  "description": "A barebones Node.js app using Express 4",
  "repository": "https://github.com/heroku/node-js-getting-started",
  "logo": "https://cdn.rawgit.com/heroku/node-js-getting-started/master/public/node.svg",
  "keywords": ["node", "express", "heroku"],
  "image": "heroku/nodejs"
}

gitignore

# Node build artifacts
node_modules
npm-debug.log

# Local development
*.env
*.dev
.DS_Store

# Docker
Dockerfile
docker-compose.yml

1 Ответ

0 голосов
/ 05 июля 2019

Как насчет добавления socket.io в package.json в качестве зависимостей?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...