如何在nodejs中关闭请求?

时间:2011-08-26 20:35:58

标签: node.js http express request

我拥有的:

我正在node.js使用express framework,而我正在构建一个可以上传文件的表单,我正在使用node-formidable

问题是什么

我的问题是,如果我发现上传文件出错,我无法关闭请求。我想检查文件类型,大小等。所以我可以上传正确的文件,文件实际上没有上传,所以我不浪费时间。

所以问题是我无法停止HTTP请求。

我尝试了什么

这是我到目前为止所尝试的内容:

request.connection.destroy();
response.end('something went wrong...');

我假设connection.destroy()中止了请求,我知道这是因为它触发了强制表单中止事件(form.on('abort', function(){ ... }))但是文件仍在上传,并且响应不会到达文件上传后。

那么我应该如何关闭HTTP请求,并将消息发送回客户端?

编辑: 还有别的,当我不使用response.end()然后它起作用,除了客户端等待答案,这很奇怪:\

2 个答案:

答案 0 :(得分:4)

这样做的正确方法是:

request.pause();
response.status = 400;
response.end('something went wrong...');

来源:https://groups.google.com/forum/?fromgroups=#!topic/nodejs/2gIsWPj43lI

答案 1 :(得分:0)

尝试使用以下代码:

  1. 当您的服务器端验证失败时,请提供如下响应:

    res.json({'IsFileUploaded':'false', 'requiredFileSize': '1000bytes', 'actualFileSize': '800bytes', 'AlertMsg':'File size should be at least 1000 bytes....'})

    它会关闭连接,您可以以JSON格式传递数据