[英]How does my website know to connect with my Node app?
如果我在 Heroku 上運行 Node 應用程序,它會創建一個服務器並偵聽端口 80。我的網站如何知道與我的 node.js 應用程序中的代碼進行交互?
本質上,我試圖將在我的客戶端使用 Ajax 創建的對象發送到服務器端。 我的 node.js 應用程序如何偵聽此數據,尤其是在生產中?
更多信息:
所以我有一個靜態網站視圖,其中包含通過共享主機上傳的 html 和 css。 我正在嘗試使用 Node.js 通過 Stripe 實現一個簡單的支付系統。 所以我只有一台用於 Node 的服務器和一台用於我的網站的共享主機。 我的問題是如何連接兩者而不必通過 Node 提供 .html 文件?
目前還不清楚您在設置 node.js 服務器時究竟遇到了什么問題,因為您要求的幾乎所有內容都在網絡上的許多示例中進行了解釋。 因此,由於我不知道您卡在哪里,我將從概念上解釋您從您的站點發出 Ajax 調用所經歷的步驟:
僅供參考,如果您對 node.js 服務器的唯一想法是使用 Stripe checkout,那么您可以在網頁中編寫 Javascript 直接與 Strip 服務通信,而無需晚上擁有自己的 node.js 服務器. 這取決於您要嘗試執行的操作的詳細信息。 此處的一些 Strip 結帳詳細信息: https : //stripe.com/docs/checkout
因為您聲明了您的路線(假設您使用的是 Express 之類的東西,或者您已經制作了自己的 vanilla http 服務器)所以當您訪問路線時,它知道執行您也綁定的任何功能
例如app.get('/', someController);
知道每當有人訪問/
它會使someController
執行。
Node通過自己的程序直接運行網站,知道這些
如果我誤解了讓我知道
回復評論:
我不太明白你的問題,如果你上傳你的view
文件,例如你的home.ejs/html/jade
無論你正在使用什么到另一台服務器,然后將你的app
上傳到另一台服務器,它不會工作,你會得到404未找到或什么的。 我假設你來自 PHP 或者你有你的 PHP 文件的東西,一切都組合在一起,就像你在一個文件中擁有你的html/php
然后當你訪問你的 localhost/home.php 時它工作。 Node 是不同的,你有你的app
,它通過你的服務器端邏輯告訴它調用什么視圖,你的客戶端東西(比如你的視圖和 css/js 以及什么不是)與你的服務器端邏輯完全分開,並通過你的控制器,你告訴什么函數調用什么視圖,例如
(假設您使用的是 express)您將其作為控制器:
app.get('/', function(req, res) {
res.render('home');
});
然后在你的app.js
邏輯中你有:
// Your Route
app.use('/', homeController)
那么在你views
你可能有
home.html/jade/ejs
(擴展名取決於您使用的任何模板)
現在,當有人訪問/
路由看到這個並且運行正常時,我需要調用homeController
並且它確實調用了它並且它很高興,然后它獲取函數的內容,然后哦它想要呈現一個視圖文件,然后表達'函數res.render
將映射到您的views
文件夾,直到它找到與您請求的內容類似的內容,在這種情況下: home.html
然后它呈現文件並將響應發送回客戶端,
簡而言之, Request > Route > Controller > Function Body > Does whatever you've programmed from there
長話短說,您的客戶端內容和您的服務器邏輯彼此完全獨立
就像你的PHP
或其他東西一樣,你有你的 php 文件
<?php
<html>
</html>
?> (i think thats how it goes I haven't done php in a looooonngg time)
然后你運行 apache 或其他什么,apache 會神奇地路由到請求的.php
文件,編譯並渲染它
希望我的回答好一點
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.