Как запустить вебсервер с базой node.js в облачном сервисе?
Привет. перенес с виртуалки qemu/kvm в облачный сервис timeweb. и столкунлся с таким моментом при запуске вебсервера, что не корретный хост.
$ npm start > frontend@0.1.0 start > react-scripts start Invalid options object. Dev Server has been initialized using an options object that does not match the API schema. - options.allowedHosts[0] should be a non-empty string. $ cat package.json | grep proxy "proxy": "http://IPADDRESS:8000", "http-proxy-middleware": "^2.0.6", $ cat src/setupProxy.js const {createProxyMiddleware} = require('http-proxy-middleware'); module.exports = function (app) { app.use( '/api', createProxyMiddleware({ // ️ make sure to update your target target: 'http://IPADDRESS:3000', changeOrigin: true, }), ); }; $ npm run build $ sudo npm install -g serve $ serve -s build ... HTTP 3/18/2024 7:58:11 AM IPADDRESS2 Returned 200 in 4 ms |
$ npm start > frontend@0.1.0 start > react-scripts start Invalid options object. Dev Server has been initialized using an options object that does not match the API schema. - options.allowedHosts[0] should be a non-empty string. $ cat package.json | grep proxy "proxy": "http://IPADDRESS:8000", "http-proxy-middleware": "^2.0.6", $ cat src/setupProxy.js const {createProxyMiddleware} = require('http-proxy-middleware'); module.exports = function (app) { app.use( '/api', createProxyMiddleware({ // ️ make sure to update your target target: 'http://IPADDRESS:3000', changeOrigin: true, }), ); }; $ npm run build $ sudo npm install -g serve $ serve -s build ... HTTP 3/18/2024 7:58:11 AM IPADDRESS2 Returned 200 in 4 ms
при этом в виртуалке запускалось все нормально. Ладно, добавил файл setupProxy.js с указанием ip адреса, по источникам запустил через БИЛД, в браузере запустил IPADDRESS:3000 запустился сайт, а информация на сайте из базы не появилась, причем база коннектится. я думаю что это из-за ip адреса, который выдает провайдер, ибо в базе приходилось прописывать адрес провайдера при подключении к базе. Даже при выводе моей последней команде видно что другой адрес указывается IPADDRESS2, это адрес провайдера . Но веб сервере данные вообще не отображаются, кто может подсказать что с этим делать? кто -то знаком уже с timeweb? и разворачивал уже там веб сервер?
Дополнительно:
Так брать надо было виртуалку у таймвеба
https://timeweb.com/ru/docs/virtualnyj-hosting/pri...
Вы можете использовать Node.js на виртуальном хостинге в качестве консольной утилиты, но запуск в виде системной службы или веб-сервера будет невозможен из-за ограничений. Чтобы разместить Node.js-службу, подойдут наши виртуальные серверы.
Надо было арендовать не shared хостинг, а vds или ds, далее выполнить эти шаги.
- А в облачном сервере разве нельзя так настроить?? странно просто
- David It,
в облачном сервере
Что это? Виртуальный (shared) хостинг?
странно просто
Ничего странного, это стандартное явление и зависит от конкретного хостинг провайдера, у одних можно, у других нет. Да и там где можно, он будет запускаться в режиме Phusion Passenger, со всеми его недостатками.
Например в данном случае, nodejs не может работать как сервер и слушать определенный порт, а python может.
Если хотите стандартного поведения на любом хостинге - арендуйте vds или ds.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для запуска вебсервера с базой данных node.js в облачном сервисе, вам потребуется выполнить следующие шаги:
1. Выберите облачный сервис, который поддерживает node.js и базы данных. Некоторые из популярных облачных сервисов, которые можно использовать, это AWS (Amazon Web Services), Google Cloud Platform, Microsoft Azure и Heroku.
2. Создайте учетную запись на выбранном облачном сервисе и зайдите в панель управления.
3. Создайте новый проект или приложение и выберите настройки, поддерживающие node.js и базу данных (например, MongoDB или MySQL).
4. Установите необходимые зависимости для вашего проекта, такие как express.js для создания вебсервера на node.js и mongoose для работы с базой данных MongoDB.
5. Настройте конфигурацию вашего вебсервера, указав порт, на котором он будет слушать запросы, и подключение к базе данных.
6. Загрузите ваш код на облачный сервис, используя git или другие средства управления версиями.
7. Запустите ваш вебсервер, выполнив команду запуска, указанную в документации облачного сервиса.
Пример кода для запуска вебсервера на node.js с использованием express.js и базы данных MongoDB:
const express = require('express'); const mongoose = require('mongoose'); const app = express(); const port = process.env.PORT || 3000; mongoose.connect('mongodb://localhost/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true }); app.get('/', (req, res) => { res.send('Hello World!'); }); app.listen(port, () => { console.log(`Server is running on port ${port}`); });
Это базовый пример кода для запуска вебсервера на node.js с базой данных MongoDB. Не забудьте заменить 'mongodb://localhost/mydatabase' на ваше подключение к базе данных.
После выполнения этих шагов, ваш вебсервер с базой данных node.js должен успешно запуститься на выбранном облачном сервисе.