我正在开发一个socket.io + Node.js项目。
当我使用console.log打印变量时,我在控制台上获取变量。 但是当我将此变量发送到客户端时,它似乎是浏览器上的[object Object]形式。 如何在浏览器上查看我的变量?
由于
答案 0 :(得分:2)
尝试console.log(JSON.stringify(myVariable));
,然后在浏览器中查看它,您就会更清楚地了解正在发生的事情。
答案 1 :(得分:0)
您可能正在使用0.6服务器端语法:
socket.send({foo: 'bar'})
尝试使用以下更新语法:
socket.json.send({foo: 'bar'})
您可以在此处找到更多信息: https://github.com/LearnBoost/Socket.IO/wiki/Migrating-0.6-to-0.7
答案 2 :(得分:0)
谢谢,console.log(JSON.stringify(myVariable));为我的案子工作。变量显示为 {coloumn_that_result_lays:“结果”}。当然我们可以用javascript-substring克服它,但是有一个直接给出“结果”的函数。
// Require HTTP module (to start server) and Socket.IO
var io = require('socket.io'),
http = require('http');
io = require('socket.io');
// Start the server at port 8080
var server = http.createServer(function(req, res){
// Send HTML headers and message
res.writeHead(200,{ 'Content-Type': 'text/html' });
res.end('<h1>Hello Socket Lover!</h1>');
});
server.listen(8080);
// Create a Socket.IO instance, passing it our server
var socket = io.listen(server);
// Add a connect listener
socket.on('connection', function (client){
//mysql
var mysql = require('db-mysql');
new mysql.Database({
hostname: 'localhost',
user: 'root',
password: '123123',
database: 'node'
}).connect(function(error) {
if (error) {
return console.log('CONNECTION error: ' + error);
}
this.query('SELECT data FROM exam where id=2 ').
execute(function(error,result) {
if (error) {
console.log('ERROR: ' + error);
return;
}
client.json.send(JSON.stringify(result));
});
});
// Create periodical which ends a message to the client every 5 seconds
var interval = setInterval(function() {
client.send('This is a message from the server! ' );
},1000);
// Success! Now listen to messages to be received
client.on('message',function(event){
console.log('Received message from client!',event);
});
client.on('disconnect',function(){
clearInterval(interval);
console.log('Server has disconnected');
});
});