#node.js #reactjs #express
#node.js #reactjs #экспресс
Вопрос:
Я новичок в NodeJS и пришел из мира Java, но за последние 3 месяца я сделал неплохую разработку. Я использую ExpressJS и REACTJ в своем первом проекте, теперь во время разработки мы используем 2 http-сервера: 1 для серверного приложения ExpressJS, а другой для интерфейсного приложения ReactJS.
Теперь это способ, которым мы должны развертывать на производстве, или мы можем объединить его как 1 приложение и развернуть на 1 http-сервере, прослушивающем порт 80.
с уважением
Ответ №1:
Развертывание рабочего приложения React в Heroku
1. Создайте приложение React
npm create-react-app heroku-deploy-test
cd heroku-deploy-test
2. Создайте экспресс-сервер JS для обслуживания рабочей сборки
//server.js
const express = require('express');
const path = require('path');
const app = express();
app.use(express.static(__dirname));
app.use(express.static(path.join(__dirname, 'build')));
app.get('/*', function (req, res) {
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
const port = process.env.PORT || 8080;
app.listen(port);
В вашем package.json
файле измените сценарий запуска на следующий: start:
"node server.js"
3. Развертывание в Heroku
Если у вас еще нет учетной записи Heroku, создайте ее здесь: https://signup.heroku.com / В командной строке выполните следующие действия: heroku login
Вам нужно будет ввести свои учетные данные heroku в терминал. После успешного ввода учетных данных heroku выполните следующие действия в своем терминале, чтобы создать новое развернутое приложение:
heroku create heroku-deploy-test
(Замените heroku-deploy-test
на свое собственное имя приложения.)
Затем отправьте сборку своего приложения в heroku со следующим git в вашем терминале:
git init
git add .
git commit -m "initial commit"
heroku git:remote -a heroku-deploy-test
git push heroku master
Эти команды устанавливают ваши зависимости, инициализируют git и подключают ваш репозиторий к удаленному репозиторию, размещенному на Heroku.
Примечание: если вы уже инициализировали свой git перед запуском heroku create [app-name]
, вам не нужно запускать heroku git:remote -a [app-name].
запустите heroku open
, и ваше приложение для разработки откроется в вашем браузере по умолчанию. Если вам нужна производственная сборка, я думаю, вы уже знаете, что делать. -> Создайте производственную сборку вашего React
приложения. Создайте соответствующий .gitignore
файл, чтобы были развернуты только соответствующие файлы.
ВАЖНО: если у вас уже был .gitignore
файл, убедитесь, что в нем нет этой строки /build
🙂
Могу ли я также предложить прочитать этот блог! Удачного дня!
Комментарии:
1. Спасибо, Бигга, ты объясняешь мне, как развернуть React как 1 приложение и Express как другое приложение. Где, как и в моем случае, оба (ExpressJS [серверная часть] и ReactJS [интерфейс]) являются частью 1 приложения. Итак, как я могу объединить его в одно приложение и развернуть. с уважением
2. @SaifuddinSyed — ReactJS — это фреймворк для внешнего интерфейса, который работает в браузере. Express — это серверная платформа, которая работает поверх среды NodeJS. Это две очень разные вещи, которые работают совершенно по-разному. Вот почему у нас есть такие термины, как «бэкэнд» и «интерфейс». Если вы хотите, вы можете развернуть свое приложение React с нулевыми настройками, например, на Heroku (я предлагаю прочитать блог, прикрепленный к моему ответу), но если вы хотите иметь API NodeJS / Express, который работает с вашим приложением React, ну, приятель, это совсем другая игра. Итак, короткий ответ — НЕТ.
3. @SaifuddinSyed Могу ли я предложить обновить ваш вопрос с лучшим объяснением того, что именно вы хотите, и немного кода не повредит. Приветствия!
4. Вы все равно можете развернуть их на том же хосте. Таким образом, даже если у вас будет
Express
приложение иReact
приложение, они оба могут находиться на одном сервере (просто разные порты) и взаимодействовать друг с другом. Установитеreact router 4
и убедитесь, что маршруты верны, и дело сделано. Просто сделайте так, чтобы вашеExpress
приложение обслуживалосьindex.html
из вашегоReact
приложения src или папки сборки. Как я показал вам выше в своем ответе. Надеюсь, вы поняли суть. Удачного дня.