我试图用node.js和jQuery创建一个简单的聊天应用程序,但在控制台中出现''未定义'的错误信息。我正在遵循authr在使用jquery时没有问题的教程。在Node.js中处理.js和.css
我chat.js(服务器):
var http = require('http'),
sys = require('sys'),
fs = require('fs'),
ws = require('./ws.js');
var clients = [];
http.createServer(function(req,res){
res.writeHead(200,{
'Content-Type': 'text/html'
});
var rs = fs.createReadStream(__dirname + '/test.html');
sys.pump(rs, res);
}).listen(4000);
ws.createServer(function(websocket){
websocket.on('connect', function(resource){
clients.push(websockets);
websocket.write('Welcome');
});
websocket.on('data', function(data){
clients.forEach(function(client){
client.write(data);
});
});
websocket.on('close',function(){
var pos = clients.indexOf(websocket);
if(pos >= 0){
clients.splice(pos, 1);
}
});
}).listen(8081);
的test.html(客户端):
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(e) {
ws = new WebSocket("ws://localhost:8080");
ws.onmessage = function(event){
var data = data.replace(/&/g, "&").replace(/</g,"<").replace(/>/g,">");
$('#log ul').append('<li>' + data + '</li>');
}
});
</script>
</head>
<body>
<div id="log"><ul></ul></div>
<div id="console">
<input type="text" id="entry"/>
</div>
</div>
</body>
</html>
我得到的错误之前,我去掉了所有的CSS等。 js src所以我很确定问题出在服务器中的'Content-Type'代码。
这解决了$错误,但感谢你的其他评论,以及我将研究这更多 – RapsFan1981 2012-08-08 17:16:14
这解决了'jQuery'问题,但没有解决也谈论CSS文件的问题。这是一种避免在本地提供静态文件的解决方法,如果您的页面上有自定义CSS,则无法工作。 – 2012-08-08 17:28:50
是的,但问题并没有问服务的css文件(提问者刚才提到他们删除了css refs作为调试的一部分)。此外,现在他们知道这个问题与服务静态资源有关,他们可以自己解决其他问题。谷歌搜索可能很快找到他们这个链接:http://www.sitepoint.com/serving-static-files-with-node-js/ – Tom 2012-08-08 17:53:16