无法在浏览器上显示我的变量

时间:2011-08-15 19:18:28

标签: node.js socket.io

我正在开发一个socket.io + Node.js项目。

当我使用console.log打印变量时,我在控制台上获取变量。 但是当我将此变量发送到客户端时,它似乎是浏览器上的[object Object]形式。 如何在浏览器上查看我的变量?

由于

3 个答案:

答案 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');
    });

});