【问题标题】:Sending javascript files using Node server with NowJS使用带有 NowJS 的 Node 服务器发送 javascript 文件
【发布时间】:2011-12-24 11:02:27
【问题描述】:

对于任何有 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,因此任何包含该框架的解决方案都将受到欢迎。

感谢您的帮助!

【问题讨论】:

  • 不知道为什么要发送JavaScript文件,为什么不能直接从服务器读取文件浏览器?您可以发送 HTML 并在 script 标签中引用 JavaScript。

标签: javascript node.js raphael client-server nowjs-sockets


【解决方案1】:

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

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

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

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

    var everyone = nowjs.initialize(server);

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 2012-02-10
      • 2013-06-01
      • 1970-01-01
      • 2018-01-05
      • 2011-02-10
      • 1970-01-01
      相关资源
      最近更新 更多