Как настроить Node.js и Express (стек MERN) - PullRequest
0 голосов
/ 01 ноября 2019

Я новичок во всем сообществе Node JS и пытаюсь создать тестовое приложение, используя MERN (Mongo DB, Express, React, Node JS). Я пришел из стека LAMP (Linux, Apache, MySQL и PHP).

  1. Я настроил свой сервер node.js в Ubuntu 18 (AWS EC2), и яУстановил Node JS, Express и Mongo DB. Насколько я понимаю, Express - это веб-сервер вроде Apache или Nginx? Так не может ли он заменить Nginx и Apache? Я вижу некоторые учебники, в которых используется Nginx с Express, я не уверен, почему.

  2. Кроме того, как мне подключить мой домен (example.com) к моему серверу Node JS? Все примеры, которые я вижу, относятся к localhost на порту 3000 или 3001. Когда я работал с Apache, все, что мне нужно было сделать, это указать доменом IP-адрес, затем перейти в файл 000-default.conf (файл конфигурации apache) идобавьте домен и каталог для домена, чтобы перейти. Но теперь, когда я указываю домен на мой Node-сервер, он просто говорит «отказался подключаться». Я делаю это правильно? У меня есть файлы приложений моего веб-сайта в папке "/var/app".

Пример конфигурации из Apache :

<VirtualHost *:80>
    DocumentRoot /var/www/html

    # ...
</VirtualHost>

Спасибо всем за помощь!

Ответы [ 2 ]

1 голос
/ 01 ноября 2019

Я постараюсь помочь вам в вашем втором вопросе. Если вы хотите использовать http-сервер с nodejs, у вас есть две возможности:

  • Вы измените порт при вызове метода express listen (), используя порт 80, например:

    app.listen(80, () => console.log('Server running on port 80!'))
    

Таким образом, вы не можете одновременно запускать nginx или apache на порту 80.

  • Вы будете использовать nginx или apache в качестве обратного прокси, которыйперенаправьте http-запрос с вашего домена на порт 80 на порт 3000, если ваше приложение создано с портом 3000. Например, с конфигурацией nginx:

    server {
        listen 80;
        server_name myapp.domain.com;
    
        location / {
            proxy_pass http://localhost:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    

Надеюсь, это поможет вам.

0 голосов
/ 01 ноября 2019

Express js - это просто структура на узле js. Узел js поставляется с собственным собственным веб-сервером и предоставляет библиотеку 'http' (ту, которую Express просто упаковывает).

Предполагается, что вы уже запустили npm init и npm install --save express. Все, что вам нужно для запуска вашего сервера, это:

server.js

const express = require('express')

// Create Express app
const app = express()

// A sample route
app.get('/', (req, res) => res.send('Hello World!'))

// Start the Express server
app.listen(3000, () => console.log('Server running on port 3000!'))

, затем запустите:

node app.js

Ваш терминалдолжен отображать вывод: «Сервер работает на порту 3000!»и когда вы откроете свой браузер на http://localhost:3000, появится надпись «Hello World!»

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