Доброго времени суток. Изучаю бэк и столкнулся с такой проблемой. Написал скрипт (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()