2012-05-04 21 views
4

有一對夫婦的node.js我不太瞭解的方面。我希望有人能讓事情更清晰瞭解Node.js的一些方面的

當您安裝node.js您在哪裏存儲文件以便Web瀏覽器可以顯示您的內容?例如Apache有一個www文件夾。

是否node.js的替代客戶端的JavaScript?

如何node.js的HTML與互動?例如,如果我希望把數據從服務器到這個div元素<div id="content"></div> 在PHP中,你可以做這樣的事情:從客戶端<div id="content"><?php echo $content; ?></div>

你調用過的node.js?例如:向node.js獲取數據的Ajax請求。

讓我困惑的是,因爲它是從服務器運行,所以我希望我可以在瀏覽器上使用javascript從node.js服務器獲取數據。但是,我看到這個例子從來沒有完成。

在此先感謝

回答

6

當你安裝你在哪裏存儲文件的Node.js使Web瀏覽器可以顯示您的內容?例如Apache有一個www文件夾。

無論你想要的。 node.js不提供靜態內容,它運行JavaScript。您可以告訴它在啓動時要運行哪個腳本。

你可以寫一些JavaScript代碼提供靜態內容,但如果你把它取決於你寫的代碼。

是否node.js替換客戶端JavaScript?

只有在任何服務器端編程取代客戶端JavaScript的情況下。在服務器端使用JS的

一個優點是可以重複使用的客戶端和服務器上的庫。對於聲稱專注於這個(我還沒有時間去嘗試它自己還)的框架見Mojito

例如,如果我希望把數據從服務器到這個div元素<div id="content"></div>在PHP中,你可以做這樣的事情:<div id="content"><?php echo $content; ?></div>

PHP是一種嵌入式編程語言的模板語言。 JavaScript是一種編程語言。通常,您可以使用JS中的模板語言(例如moustache)。

你會不會從客戶端調用node.js?例如:向node.js獲取數據的Ajax請求。

是的,如果你想。就像其他服務器端編程環境一樣。 (假設您使用節點運行HTTP服務器)。

+0

感謝您的回答。我看到服務器將數據推送到瀏覽器的示例。這是否意味着客戶端上的js需要監聽來自服務器的請求? – Decrypter

+0

通過HTTP獲取數據的方式與往常一樣。運行服務器的語言並不重要。 (所以也許,這取決於你'推'的意思)。 – Quentin

0

node.js如何與HTML交互?例如,如果我想把 數據從服務器到這個div元素在 PHP,你可以做這樣的事情:

你可能會發送內容爲JSON的JS客戶端,並將其插入到DOM(使用普通的JS或JQuery)。

我已經寫了一個真正瑣碎(和不太功能豐富的:-P)chat application在Node.js的一個,而一去,嘗試一些概念並瞭解JS的客戶端和服務器上的工作。也許它會給你一些線索。

編輯

在此應用中,服務器還提供靜態文件,它實現生產就緒的應用程序時,你不應該做的(節點是不是真的適合於提供靜態文件!)。

1

Node.js不是服務器(例如Apache)。這是一個使用一些內置庫(所謂的模塊)運行Javascript的平臺。在Node.js中編寫服務器(HTTP或任何其他)非常容易,但您也可以編寫完全不同的程序(不涉及與網絡相關的,本地執行的程序)。

我建議你看看這個:http://www.nodebeginner.org/。這花了我幾個小時,但讓我瞭解Node的基本知識而沒有太多的痛苦。

至於客戶端腳本,它通常是分開的。 Node中的代碼在單獨的環境中運行,然後在瀏覽器中運行。他們可以交流,但你必須明確地讓他們去。與PHP中的服務器端編碼沒有多大區別。服務器上的代碼產生一些輸出(例如HTML),這些輸出發送給客戶端。如果輸出中有腳本,則客戶端(瀏覽器)執行它。他們可以通過(通過XHR,websockets等)進行通信,但是這些腳本本身是分開的。

+0

@昆汀的答案是完全正確的,但我認爲對於剛開始學習Node的人來說可能有點難以理解。我是其中之一,幾個星期前我有類似的問題。所以我試圖簡化它。 –