我在expressjs 3中使用socket.io。我想用express-validator清理传入的消息。我有这个代码:
var expressValidator = require('express-validator')
, sanitize = require('express-validator').sanitize;
socket.on('chat', function (data) {
io.sockets.in('test').emit('chat', {
user: sh.session.user,
message: data.message,
time: new Date()
});
});
我该如何使用sanitize(data.message).xss
?因为这是行不通的。
在这种情况下你想使用validator
代替express-validator
。首先通过 npm 安装它:
npm install validator
然后以几乎相同的方式使用它:
var sanitize = require('validator').sanitize;
// later on
message = sanitize(data.message).xss()
这样做的原因是因为express-validator
用于当您处理通过expressjs的HTTP请求时。对于 Websockets,您不会通过expressjs,而只是侦听与它相同的端口。因此,express-validator 实际上并不“存在”在 Websocket 数据事件的上下文中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)