使用节点服务器与NowJS发送JavaScript文件

这个问题应该简单回答任何有Node经验的人 – 不幸的是我是一个极端的新手。

我正在编写一个棋盘游戏的Web应用程序,它将使用服务器 – 客户端体系结构来向所有客户显示对棋盘进行的实时更改。 该应用程序使用Raphael来显示graphics。

我已经创build了一个成功发送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,所以包含这个框架的任何解决scheme都会受到欢迎。

谢谢你的帮助!

在你的服务器端,你总是返回index.html

看看在这个要点中如何使用createServer方法: https : //gist.github.com/1245922

它评估扩展返回一个适当的mimetypes,然后调用stream文件函数从fs返回请求的url /文件。

如果你打算在nowjs中使用这个,那么你也需要使用以下几行:

  var everyone = nowjs.initialize(server);