我有一個簡單的html頁面由一個node.js服務器和客戶端的快遞服務javascript我想訪問一些服務器端變量。我試着用Google搜索一個解決方案,但沒有看到一個簡單的解決方案,而沒有使用某種模板引擎。在客戶端訪問服務器變量(node.js + express)
因此,如果我需要從同一主機提供的客戶端JS訪問服務器上的變量,我需要做什麼?
我有一個簡單的html頁面由一個node.js服務器和客戶端的快遞服務javascript我想訪問一些服務器端變量。我試着用Google搜索一個解決方案,但沒有看到一個簡單的解決方案,而沒有使用某種模板引擎。在客戶端訪問服務器變量(node.js + express)
因此,如果我需要從同一主機提供的客戶端JS訪問服務器上的變量,我需要做什麼?
要訪問客戶機上的變量,你需要將其暴露script標籤裏面,有幾個節點模塊,可以幫助你與它(例如:表達狀態)https://www.npmjs.com/package/express-state,但你會需要一個模板引擎來生成所需的html。使用快遞時,您可以使用各種模板引擎。如果您直接使用快遞發生器,它應該帶有玉,您可以使用不同的發電機選項來使用其他模板引擎。看到這裏的快遞發生器選件http://expressjs.com/en/starter/generator.html
創建一個API來暴露你的變量:
app.get('/myvar', function(req, res){
res.send(varYouWantToSend);
});
然後在客戶端做出了http GET request該API的調用。在這個例子中API的URL是www.yoursite.com/myvar
。
你可以嘗試使用此lib目錄下:
https://github.com/siriusastrebe/syc
,如果你想實現自己看看Ajax。 jquery有一個非常簡單的ajax包裝(http://api.jquery.com/jquery.ajax/)。您需要在服務器上打開相應的URL以返回/設置值。
嘗試socket.io
http://socket.io/它在現代瀏覽器中使用websockets
和優雅,降解較舊的技術,如AJAX
與舊的瀏覽器,讓用戶體驗是相同的。
退房這裏的細節Web Socket support in Node.js/Socket.io for older browser
輸出JSON在腳本標籤文檔,或使該數據的AJAX請求。 – elclanrs
就像@elclanrs說的那樣,在文檔的腳本標記之間輸出javascript,使用AJAX或 - 作爲第三個選項 - 使用socket.io進行實時通信。 –
個人websockets是去這裏的方式。我討厭有一個明確的路線設置來從字面上返回一個變量。能夠在任何時候發送數據都比這些xhr呼叫容易得多。 –