簡體   English   中英

部署 Node.js + Express 到服務器

[英]Deploy Node.js + Express to server

部署 Node.js + Express 到服務器

我是 Node.js 和 Express 開發的新手,在我向老板推銷使用這種新技術的新項目之前,我只想在我的服務器上測試該技術以確保一切正常. 我們在 Pair.com 上使用專用服務器進行托管。

背景,我們已經在 PHP/mySQL 中完成了所有以前的開發工作,我猜這就是我們的服務器設置為最有效地運行的內容。

話雖如此,我已經能夠將 SSH 安裝到服務器中,檢查 Node 是否已安裝(已安裝,並且運行版本 12.18.1),將 CD 放入我的域,然后安裝 express。

我使用 npm start 運行以下文件,該文件運行此 app.js 文件。

var bodyParser = require('body-parser');
var app = express();

app.use(bodyParser.urlencoded({ extended: true }));

app.get('/', function (req, res) {
  res.send('Hey this is your website.');
});

app.get('/joke', function (req, res) {
  var joke =
    'What do you call a dog that does magic tricks? A labracadabrador.';
  res.send(joke);
});

app.listen(8080, function () {
  console.log('Server running on 8080!');
});

當我運行它時,我得到“服務器正在 8080 上運行”。 在我的 SSH 終端中,但是,如果我訪問該主域或 /joke。 我得到“找不到頁面”。

我的理論是 Express 在 8080 上運行,但我的網站正在偵聽端口 80,因此當 Express 在技術上運行時,我的網站並沒有關注該 app.js 文件。

如果我嘗試在端口 80 上運行 Express,我會收到 EACCESS 錯誤。

我的問題是,如何部署並讓我的服務器監聽看似在服務器上運行的 app.js 文件?

最好的解決方案是使用反向代理坐在您的快遞服務器前面。 反向代理將偵聽端口 80 並將請求轉發到偵聽端口 8080 的 express 應用程序。

您可以考慮使用nginx來完成此操作。 有很多關於配置它以與快速應用程序一起使用的教程。

我曾經遇到過類似的問題。 我通過使用 CORS 中間件解決了這個問題。 我在我的節點服務器上安裝了 CORS,並將其用作中間件

app.use(cors({ origin: "http://localhost:3000" }));

請注意我如何使用客戶端 URL 作為來源。 您可以將 URL 替換為您的客戶端 URL。 我希望這有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM