簡體   English   中英

如何離線/本地使用Node.js?

[英]How can I use Node.js Offline/locally?

也許我誤會了Node.js的工作原理,但是我想將其僅用作Web應用程序的服務器后端,而不將其作為服務運行/監聽端口。

我願意聽到更好地解決問題的想法,該應用程序僅在我們的Intranet上可用。

我在想什么的例子:

后端server.js:

function connectDb(usr, pwrd){
    //Some npm package code to connect to a db
    return console.log("Sucessfully connected")
}

前端javascript.js:

require("server.js")

$(".connect.button").on("click", function(e){
    connectDb($(".connect.user").text(), $(".connect.pwrd").text())
})

您的問題和代碼示例有兩個不同的方面,您可以在這些方面更好地了解生態系統。

客戶端服務器

當客戶端想要從服務器獲取一些資源時,它會連接到該服務器上的特定端口,后端應用程序正在該端口上“監聽”。 這意味着,為了能夠服務於來自數據庫的資源,必須使Node進程偵聽端口,從數據庫中獲取請求的資源,然后將其返回。 這類數據交換的理想格式是JSON。 為了更好地了解此過程,您可能想要嘗試編寫一個簡單的Node應用程序,當它收到請求時通過網絡發送一段JSON,然后嘗試使用客戶端代碼中的XHR加載它(例如,使用JQuery的AJAX方法)。 然后,嘗試根據來自請求內容的查詢提供來自數據庫的動態JSON。

模塊加載

require("server.js")僅在Node中工作,並且不能在客戶端瀏覽器中運行的JavaScript中使用(嗯,至少目前是這樣。也許可以針對瀏覽器對某種模塊加載進行規范化,但這是另一場辯論。)。 要在客戶端瀏覽器中使用腳本,您必須使用<script>標簽將其包含在加載的頁面中。 在node中,您可以使用require加載腳本文件。 但是,所述腳本必須聲明哪些函數或變量暴露於require它的腳本。 為此,必須導出這些變量或功能設置module.exports 請參閱本文以獲取一些基本知識,以及Node docs的這部分內容,以掌握模塊加載的所有詳細信息。 這非常重要,因為這將幫助您構建應用程序並避免出現奇怪的錯誤。

一方面, node本身不是Web服務器:它是JS解釋器,它可以(除其他外)用於編寫Web服務器。 但是node本身比Java不再是Web服務器。

但是,如果您希望事物能夠連接到您的node程序,以便執行諸如訪問數據庫或提供網頁之類的任務,那么,是的,您的程序需要在運行它的計算機上的某個端口上進行監聽。

僅僅讓您的節點程序監聽計算機上的特定端口並不意味着其他任何人都可以訪問它。 但這實際上是一個網絡問題,而不是編程問題。

暫無
暫無

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

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