我在客户端有以下功能:
//TODO: to fix
var socket = io.connect('http://localhost:3000/home');
socket.on('news', function (data) {
console.log('testing: ' + data);
//socket.emit('my other event', {my: 'data'});
});
以下是服务器端:
module.exports = function(app, io) {
app.get('/home',function(req, res){
//res.render('profile.ejs');
});
io.on('connection', function(socket){
socket.emit('news', {
data: 'world'
});
};
问题是我似乎无法将收到的数据记录到客户端的控制台。我的代码出了什么问题?
答案 0 :(得分:0)
使用JSON.stringify()以正确的格式化打印整个数据
console.log('testing: ' + JSON.stringify(data));
答案 1 :(得分:0)
通过调用console.log('testing: ' + data);
,Javascript正在尝试通过调用data
将对象toString
转换为字符串。这将导致字符串"测试:[object Object]"。
您需要手动将对象转换为更有用的字符串,例如通过调用JSON.stringify(data)
,或者您可以使用console.log
可能会收到多个参数的功能:
console.log('testing:', data);
这样你的控制台就是打印acutall对象而不是字符串表示。