@Arche46

Почему не работает скрипт на удаленном сервере?

Доброго времени суток. Изучаю бэк и столкнулся с такой проблемой. Написал скрипт (node.js/express.js). Протестировал его на локальном компе через postman, все работает.
Далее надо выложить его на реальный, удаленный сервер. Выбрал в качестве хостинга beget, и приступил к заливке моего кода на сервер. Потратив энное количество времени без положительного результата, написал в тех поддержку. В общем потеряв еще кучу времени, я узнаю что в моем тарифном плане (я выбрал самый простой, Blog ) серверные приложения не могут работать, как я понял с их слов, у них запрещено прослушивание портов.
Вопрос: для чего в таком случаи используются такие хостинги, если на них не может работать сервер? Возможно я не так их понял или они меня. Они мне написали, чтобы мое приложение заработало, нужно подключить дополнительную услугу vps.( с такой опцией, как я понял, приложение сможет прослушивать порты)
Буду очень благодарен, если кто-нибудь простым языком прояснит ситуацию.
Буквально вчера, вспомнил, что когда осваивал django, то заливал приложение на тот же хостинг, тот же тарифный план, и приложение работало. Запросы обрабатывались. Это меня еще больше запутало.
Мой скрипт:
// const express = require('express')
import express from 'express'
import mysql2 from 'mysql2'

const PORT = 5000

const app = express()

export const connection = mysql2.createConnection({
  host: 'localhost',
  user: 'root',
  database: 'nodejs',
  password: '',
})

app.use(express.json())

app.post('/', (req, res) => {
  try {
    const { title, content } = req.body
    const post = { title, content }
    const sql = `INSERT INTO posts (title, content) VALUES ('${title}', '${content}')`
    connection.query(sql, (err, result) => {
      if (err) {
        console.log(err)
      }
    })

    res.json(post)
  } catch (error) {
    res.status(500).json(error)
  }
})

async function startApp() {
  try {
    connection.connect(function (err) {
      if (err) {
        return console.error('Ошибка: ' + err.message)
      } else {
        console.log('Подключение к серверу MySQL успешно установлено')
      }
    })

    app.listen(PORT, () => console.log('Server started on port ' + PORT))
  } catch (error) {
    console.log(error)
  }
}

startApp()
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ответы на вопрос 1
@alexeyrubtsov1
Добрый день!
Уточните, пожалуйста, номер Вашего тикета, чтобы мы могли разобраться в ситуации.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы