2011-12-24 99 views
2

對於任何具有Node體驗的人來說,這個問題應該很簡單 - 不幸的是,我是一個極端的新手。使用NowJS使用節點服務器發送JavaScript文件

我正在編寫一個棋盤遊戲的網絡應用程序,該應用程序將使用服務器 - 客戶端體系結構向所有客戶端顯示對該板進行的實時更改。該應用程序使用Raphael來顯示圖形。

我已經創建了一個成功發送HTML文件以響應任何請求的服務器,但該板不顯示 - 只有沒有任何Javascript的原始HTML出現。我認爲這是因爲我已經編程服務器始終用HTML文件進行響應,並且我無法弄清楚如何將JavaScript文件(client.js,raphael.js)發送到客戶端,以便頁面可以正確加載。

相關代碼如下。現在,我只是想讓瀏覽器繪製一個Raphael元素,這樣我就可以看到客戶端正確地獲取了加載頁面所需的Javascript文件。

在服務器端:

var fs = require('fs'); 
var server = require('http').createServer(function(req, response){ 
    fs.readFile('index.html', function(err, data) { 
    response.writeHead(200, {'Content-Type':'text/html'}); 
    response.write(data); 
    response.end(); 
    }); 
}); 

在客戶端:

$(document).ready(function(){ 
    var R = Raphael("container", 1000, 700); 
    this.R.path("M0,0l1000,700").attr({"stroke-width": "5"}); 
}); 

可以假設HTML文件的格式正確無誤,幷包括所有的JS文件的引用 - 我已經有一段時間沒有服務器 - 客戶端體系結構的應用程序運行良好。另外,我使用的是NowJS,所以包含該框架的任何解決方案都會受到歡迎。

感謝您的幫助!

+0

不知道爲什麼你要發送的JavaScript文件,爲什麼不能將文件是直接從服務器讀取瀏覽器?您可以發送HTML並在腳本標記中引用JavaScript。 – 2011-12-24 17:29:43

回答

1

在你的服務器端,您總是返回的index.html

退房的createServer方法是如何在這個要點中:https://gist.github.com/1245922

它評估擴展以返回適當的mime類型,然後調用流文件函數以從fs返回請求的url /文件。

如果你要與nowjs使用,那麼你會想還的線沿線的使用:

var everyone = nowjs.initialize(server); 
相關問題