2012-03-05 58 views
1

我試過用socket.io創建一個小聊天。但是現在,我想做沒有任何依賴的同樣的事情。如何使頁面識別node.js代碼

我的服務器端似乎沒問題,問題是當瀏覽器沒有識別出任何node.js代碼,例如:「require」語句時,呈現我的html頁面。

以下異常IR提出:未捕獲的ReferenceError:要求沒有定義

我把<script src="chat2.js" type="text/javascript" charset="UTF-8"></script>我的網頁上,其中「chat2.js」是我的服務器實現。

當我在網頁瀏覽器上輸入「localhost:8080」時,我正在渲染頁面。我不知道讓頁面識別寫在頁面中的服務器端代碼。

謝謝!

回答

2

node.js是一種服務器端語言。它旨在運行在由節點支持的服務器上。是什麼讓這個有趣的案例是,服務器端語言和客戶端語言都是JavaScript。在某些情況下,服務器端使用的相同代碼也可以在客戶端使用。例如,DOM操作是可以在服務器端執行的操作的示例,其中還沒有發送給客戶端的文檔,它們也是操作的示例,主要在客戶端。

但是,您試圖在只能在服務器上運行的瀏覽器中運行代碼。如果代碼包含依賴於服務器的模塊,那麼在客戶端運行它是不可能的。

+0

感謝您的回答,jmort253。我雖然認爲與使用純node.js的socket.io相同的情況是可能的。我正在嘗試進行簡單的聊天。我把「網絡」依賴於服務器,我在客戶端也做了同樣的事情。 'var net = require('net'); var client = net.connect(8001,function(){...'。但它不可能。 – Ito 2012-03-05 15:33:36

+0

絕對的,net.connect創建一個監聽8001端口的服務器,這並不是客戶想要的。認爲這只是我們在學習SSJS時區別對待的一個難點,區分客戶端和服務器:) – jmort253 2012-03-05 16:39:17