2015-11-20 35 views
5

是否有可能使用Node.js并表示放弃某个路由的请求? I.E.不返回http状态或任何标题?我想关闭连接。在node.js中的删除请求表示

app.get('/drop', function(req, res) { 
    //how to drop the request here 
}); 
+1

我不知道,只是想知道。不会'返回;'产生期望的结果?这听起来很合乎逻辑 - 对回应完全没有作用。 –

+0

我不认为回报会降低客户的要求,但依然存在。 – Justin

+0

要删除连接,您应该['.destroy()'](https://nodejs.org/api/net.html#net_socket_destroy)['.socket'](https:// nodejs。 org/api/http.html#http_message_socket) - ''req.socket.destroy()''。这将模仿“断开连接”而不是“超时”,正如您在其他评论中提到的那样。如果你想无限期延长服务器上的请求,让客户端最终选择超时,那么'return;'或者只是一个空的路由处理器应该可以正常工作。 –

回答

-1

是的,你可以。 您只需调用res.end方法(可选地传入状态码)。

使用下列方法之一:

res.end(); 
res.status(404).end(); 

如果你想还设置了头,那么你应该使用res.set方法。 见下面

res.set('Content-Type', 'text/plain'); 

res.set({ 
    'Content-Type': 'text/plain', 
    'Content-Length': '123', 
    'ETag': '12345' 
}) 

详情这里 http://expressjs.com/api.html

+0

虽然我不想返回状态码,但我想完全删除请求。 I.E.模拟HTTP超时。 – Justin

+0

返回状态码408,这是超时状态。当你调用res.end时,你正在结束请求处理。 – Don

0

看看你能做到这一点,无论你想关闭连接: res.end()