加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

Web服务 – 使用Node.js /强大的方式中止用户请求

发布时间:2020-12-14 18:59:30 所属栏目:资源 来源:网络整理
导读:我正在使用强大的接收文件上传与node.js.我将一些字段与多部分请求中的文件一起发送. 一旦某些字段到达,我就可以验证请求的真实性,如果这不正确,我想中止整个请求,以避免资源浪费. 我没有找到正确的方式中止传入的请求.我试图使用req.connection.destroy();
我正在使用强大的接收文件上传与node.js.我将一些字段与多部分请求中的文件一起发送.

一旦某些字段到达,我就可以验证请求的真实性,如果这不正确,我想中止整个请求,以避免资源浪费.

我没有找到正确的方式中止传入的请求.我试图使用req.connection.destroy();如下:

form
.on('field',function(field,value) {
    fields[field] = value;
    if (!fields['token'] || !fields['id'] || !fields['timestamp']) {
        return;
    }
    if (!validateToken(fields['token'],fields['id'],fields['timestamp'])) {
        res.writeHead(401,{'Content-Type' : 'text/plain' });
        res.end('Unauthorized');
        req.connection.destroy();
    }
})

但是,这会触发以下错误:

events.js:45
        throw arguments[1]; // Unhandled 'error' event
                       ^
Error: Cannot resume() closed Socket.
    at Socket.resume (net.js:764:11)
    at IncomingMessage.resume (http.js:254:15)
    at IncomingForm.resume (node_modules/formidable/lib/incoming_form.js:52:11)
    at node_modules/formidable/lib/incoming_form.js:181:12
    at node_modules/formidable/lib/file.js:51:5
    at fs.js:1048:7
    at wrapper (fs.js:295:17)

我也尝试过req.connection.end(),但文件不断上传.

有什么想法吗?提前致谢!

解决方法

问题是强大的不明白你想要停止.尝试这个:
req.connection.destroy();
req.connection.resume = function(){};

当然,这是一个很丑的解决方法,我是open an issue on github.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读