如何将错误对象传递给socket.iocallback

我正在使用socket.iocallback

客户代码:

socket.emit('someEvent', {data:1}, function(err, result) { console.log(err.message); }); 

服务器代码:

 socket.on('someEvent', function(data, callback) { callback(new Error('testing error')); }); 

通过上面的代码,客户端总是打印出undefined 。 如果我将服务器端代码更改为以下,我可以看到错误消息。

 socket.on('someEvent', function(data, callback) { callback({message:'testing error'}); }); 

我可以将我自己的自定义对象传递给客户端,只要不是错误对象。 有任何想法吗?

socket.io数据被序列化为JSON ,它只能表示普通对象。 您将需要将任何错误序列化为可识别的纯对象格式,或者让Socket.IO的标准序列化完成它的任务(这将导致Error实例的普通空对象。