Socket.IO 允许中间件函数传递错误。
var io = require('socket.io')();
io.use(function(socket, next){
if (socket.request.headers.cookie) return next();
next(new Error('Authentication error'));
});
Run Code Online (Sandbox Code Playgroud)
客户端可以通过侦听默认的“错误”事件来侦听这些错误。
clientIO.on('error', function(err) {
console.log(err);
}
Run Code Online (Sandbox Code Playgroud)
有没有办法让 Socket.IO 中间件发出自定义事件名称而不是“错误”(例如,“authentication_error”)?
let regex = /[a-z]+/;
regex.test('a'); // true
regex.test(''); // false
regex.test(null); // true
regex.test(undefined); // true
Run Code Online (Sandbox Code Playgroud)
因此,基于此链接,它是 Ecmascript 中的错误 - /\S/.test(null) 返回 true?,看起来空值被强制为字符串“空”。跆拳道?为什么要这样设计?我也找不到有关此行为的任何文档。有没有办法返回false空/未定义的值(在检查“空”等时没有硬编码)?