【发布时间】:2021-11-06 18:38:45
【问题描述】:
最近开始研究node.js,遇到了“ReferenceError: b is not defined”的问题。通过一些简单的操作,我得到了套接字函数中的变量 (b)。但是,我在函数之外计算接收到的信息。在这种情况下,程序无法确定从何处获取变量 (b)。我尝试使用变量返回,但它没有用。当我在函数中使用变量 (b) 时,没有问题。告诉我如何正确解决这个问题。
var io = require('socket.io')(serv,{});
io.sockets.on('connection', function(socket){
console.log('new connection!');
socket.on('clntMsg',function(data){
var b = eval(data);
console.log(data);
return b;
});
});
var a = b % 3;
谢谢,错误消失了,在这个表单中一切正常。
var io = require('socket.io')(serv,{});
var b
var a
io.sockets.on('connection', function(socket){
console.log('new connection!');
//var a = b % 3;
socket.on('clntMsg',function(data){
b = eval(data);
a = b % 3;
console.log(data);
socket.emit('serverMsg',{
msg:(a),
});
});
});
但一旦我尝试这样做:
var io = require('socket.io')(serv,{});
var b
io.sockets.on('connection', function(socket){
console.log('new connection!');
socket.on('clntMsg',function(data){
b = eval(data);
console.log(data);
});
socket.emit('serverMsg',{
msg:(a),
});
});
var a = b % 3;
然后在客户端发出“null”。
【问题讨论】:
-
在回调函数内部做
var a = b % 3有什么问题?
标签: node.js function socket.io var referenceerror