我想你可能會混淆一些東西,所以讓我們從頭開始,以確保我們使用相同的定義。
節點是一個JavaScript引擎,由V8引擎(它是爲Chrome構建的)提供動力。它基本上是一個JavaScript解釋器。
快遞是一個包,建立在Node之上,它建立在Node的http
庫上。它是(節點的)nginx
或apache
的等價物之一。
Heroku是一個基於雲的網絡主機,它具有動態擴展的能力(比如AWS,它是建立在它之上的)。
說「快車不需要一個完整的節點服務器」並沒有多大意義。他只需要一臺可以運行Node應用程序的服務器。 Node服務器的大小可能會有所不同,實際上他可能不需要很大的一個。
Heroku可能是一個非常合適的主機。他不必使用擴展或任何其他功能,並且在那裏部署Node應用程序相當容易。
許多其他流行的主機也可以支持節點。如果他們給你終端訪問權和安裝應用程序的能力,他們幾乎肯定可以。
據我所知,目前沒有像create-react-app
這樣的程序會啓動一個express
應用程序的新實例。這可能是因爲他們非常容易安裝。只需兩個文件就足夠了一個最基本的快遞應用:package.json
和您的明確文件(我將其命名爲index.js
的package.json:
{
"name": "my-app",
"dependencies": {
"express": "latest"
}
}
index.json:
const express = require('express');
const app = express();
app.get('/', (req, res) => res.send('<h1>Hello World</h1>').end());
app.listen(8888,() => console.log('Listening on port 8888'));
將它部署到任何可以運行節點並運行命令npm install; node index.js
的服務器將啓動它的運行。
很多時候,您實際上會創建一個express
服務器來爲您的Web應用程序提供服務,這些服務器經常用React編寫(這是我每天工作的場景)。 create-react-app
只是建立一個在其結構中頗有見地的項目的快捷方式,但不是使用React的唯一方式。 (技術上講,你可以在沒有package.json
的情況下離開,但是你必須在服務器上手動運行npm install express
,這真的很奇怪,所以不要這麼做)。
如果確實沒有服務器端交互(包括模板!),他可以將他的/ views和/ public目錄複製到LAMP服務器上的公共目錄中。不需要另一個JS工具,這是非常微不足道的:)!至於部署一個真正的Web應用程序而不是靜態資產,答案就是現實,如果你看看Digital Ocean的網站,他們有很好的指導,用Node + nginx配置更多的生產就緒設置 – cheesenthusiast