我正在尝试将数据从服务器发送到客户端,所以我编写了这个小程序: server.js:
var http=require("http");
var express=require("express");
var app=express();
var server=http.createServer(app);
var io=require("socket.io")(server);
var path=require("path");
server.listen(4000,function(){
console.log("server listen on port 4000");
});
app.set('views',path.join(__dirname,'views'));
app.set('view engine','ejs');
app.get("/",function(req,res,next){
res.render('client');
});
io.sockets.on("connection",function(socket){
socket.emit("message","hello");
})
client.ejs:
<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<title>test</title>
</head>
<body>
<label class="label1">Name</label>
<script src="socket.io/socket.io.js"></script>
<script>
var socket=io.connect();
socket.on("message",function(message){
$('.label1').text(message);
});
</script>
</body>
</html>
当我运行我的服务器并测试我的程序时,标签值没有改变。任何人都告诉我我的错误是什么?
答案 0 :(得分:1)
当你在HTML中使用jQuery($('.label1')
,$
是jQuery)时,你需要添加jQuery库:
<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<title>test</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
</head>
<body>
<label class="label1">Name</label>
<script src="socket.io/socket.io.js"></script>
<script>
var socket=io.connect();
socket.on("message",function(message){
$('.label1').text(message);
});
</script>
</body>
</html>
此外,一个好的做法是,当某些东西不起作用时,查看控制台(F12)并理解错误。