我无法让now.js chat client tutorial工作。 (我也几乎完全遵循this video。
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)
<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'是节点功能,但我如何让客户理解它?
任何帮助将不胜感激。
答案 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 server和fileServer
(Code Here)类。这会添加一个resource under the "folder" nowjs,用于提供客户端now.js文件。
答案 1 :(得分:0)
尝试使用js命令而不是node运行nodejs文件时出现此错误。 例如:如果nodejs文件名是test.js,我正在做
js test.js
而不是 node test.js我希望这对搜索此错误的人也有帮助。