2011-12-24 193 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); 
相关问题