now.js - Hello World示例 - “require not defined”

时间:2012-08-03 15:22:38

标签: node.js nowjs-sockets

我无法让now.js chat client tutorial工作。 (我也几乎完全遵循this video

server.coffee:

fs = require 'fs'
http = require 'http'
now = require 'now'

server = http.createServer (req, res) ->
    fs.readFile(
        'index.html'
        (err, data) ->
            res.writeHead(
                200
                    'Content-Type': 'text/html'
                )
            res.end(data)
        )
server.listen 8080

everyone = now.initialize(server)

everyone.now.distributeMessage = (msg) ->
    everyone.now.receiveMessage(@.now.name, msg)

的index.html:

<html>
    <head>
        <title>nowjs title</title>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
        <script type="text/javascript" src="https://raw.github.com/Flotype/now/master/lib/now.js"></script>

        <script type="text/javascript">
        $(document).ready(function() {
            now.name = prompt("What's your name?", "");
            now.receiveMessage = function(name, msg) {
              return $("<div></div>").text("" + name + ": " + msg).appendTo("#msg");
            };
            return $("#send-button").click(function() {
              now.distributeMessage($("#text-input").val());
              return $("#text-input").val("");
            });
          });
        </script>
    </head>

    <body>
        <div id="msg"></div>

        <input type="text" id="text-input">
        <input type="button" value="Send" id="send-button">
    </body>
</html>

当我使用node server.js

加载服务器时

我在now.js的第1行收到错误消息“require not defined”因此,客户端代码无法找到变量'now'。

我知道'require'是节点功能,但我如何让客户理解它?

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

您在客户端源(../Flotype/now/master/lib/now.js)中包含的文件是调用now = require 'now'时节点进程中包含的节点服务器端代码。

因此,将您所包含的客户端源文件从.../Flotype/now/master/lib/now.js更改为/nowjs/now.js将解决您的问题。

这个/nowjs/now.js文件来自哪里?

使用NowJS(和许多其他进行客户端/服务器通信的npm包)时,您可以扩展服务器对象。这是通过行everyone = now.initialize(server)Code Here)完成的。

在NowJS中,初始化函数的作用是wrap your serverfileServerCode Here)类。这会添加一个resource under the "folder" nowjs,用于提供客户端now.js文件。

答案 1 :(得分:0)

尝试使用js命令而不是node运行nodejs文件时出现此错误。 例如:如果nodejs文件名是test.js,我正在做

js test.js

而不是    node test.js

我希望这对搜索此错误的人也有帮助。