如何在node.js中将数组从服务器端传输到客户端?
问题描述:
我在客户端有以下功能:如何在node.js中将数组从服务器端传输到客户端?
//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'
});
};
的问题是,我似乎无法登录了接收到的数据客户端的控制台。我的代码有什么问题?
答
使用JSON.stringify()在适当的formate`
console.log('testing: ' + JSON.stringify(data));
答
打印整个数据通过调用console.log('testing: ' + data);
,JavaScript是试图将对象data
转换为字符串,通过调用toString
。这将导致字符串“testing:[object Object]”。
您需要手动将对象转换为更有用的字符串,例如通过调用JSON.stringify(data)
,或者您可以使用该功能是console.log
可能会收到多个参数:
console.log('testing:', data);
这样,你的控制台打印acutall对象,而不是一个字符串表示。
'console.log('testing:',data);' – dandavis
@dandavis它的工作!这是我的错,请提交您的答案,所以我接受它,并感谢一群 – abedzantout
在连接功能中放置一个日志,并检查它是否连接 –