Как мне переписать мое приложение node js для Heroku? - PullRequest
0 голосов
/ 29 апреля 2020

Я сделал node.js приложение, которое хочу развернуть в Heroku.

Оно отлично работает локально. Но мне трудно разобраться в руководствах о том, как переписать код, который делает приложение подходящим для развертывания.

У меня есть сервер. js файл и скрипт. js файл , Сервер получает данные от всех пользователей и передает их всем подключенным пользователям. Так что это чат.

Вот сервер. js файл.


const io = require('socket.io')(3000)
const users = {}

io.on('connection', socket => { 
    socket.on('new-user', name => {
        users[socket.id] = name
        socket.broadcast.emit('user-connected',name)

    })
    socket.on('send-chat-message', message => {
        socket.broadcast.emit('chat-message', { message: message, name:
        users[socket.id]})
    })

    socket.on('disconnect', name => {
        socket.broadcast.emit('user-disconnected', users[socket.id])
        delete users[socket.id]

    })

})

Мой скрипт. js файл


const socket = io('http://localhost:3000')
const messageContainer = document.getElementById('message-container')
const messageForm = document.getElementById('send-container')
const messageInput = document.getElementById('message-input')
const name = prompt('what is your name?')
appendMessage('you joined')
socket.emit('new-user',name)

socket.on('chat-message', data=>  {
    appendMessage(`${data.name}: ${data.message}`)
})

socket.on('user-connected', name=>  {
    appendMessage(`${name} connected`)
})

socket.on('user-disconnected', name=>  {
    appendMessage(`${name} disconnected`)
})

messageForm.addEventListener('submit',e=>{
e.preventDefault()
const message = messageInput.value
appendMessage(`You: ${message}`)
socket.emit('send-chat-message', message)
messageInput.value = ''
})

function appendMessage(message) {
    const messageElement = document.createElement('div')
    messageElement.innerText = message
    messageContainer.append(messageElement)
}

И я знаю, что проблема заключается в том, что только код способен работать локально. И я должен как-то изменить это, чтобы оно работало на Heroku. В нескольких видеороликах на YouTube я увидел, что вместо номера порта используется «process.env.PORT». Я пытался поменять их, но безуспешно.

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