2

对于任何有 Node 经验的人来说,这个问题应该很容易回答——不幸的是,我是一个极端的新手。

我正在为棋盘游戏编写一个 Web 应用程序,该应用程序将使用服务器-客户端架构向所有客户端显示对棋盘所做的实时更改。该应用程序使用 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,因此任何包含该框架的解决方案都将受到欢迎。

谢谢你的帮助!

4

2 回答 2

1

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

查看此要点中如何使用 createServer 方法:https ://gist.github.com/1245922

它评估扩展以返回正确的 mime 类型,然后调用流文件函数以从 fs 返回请求的 url/文件。

如果您打算将它与 nowjs 一起使用,那么您还需要按照以下方式使用:

    var everyone = nowjs.initialize(server);
于 2012-01-11T00:21:54.670 回答
0

使用静态中间件

http://senchalabs.github.com/connect/middleware-static.html

于 2011-12-24T22:46:32.077 回答