Node.js管道泄漏

Node.js管道泄漏,node.js,pipeline,Node.js,Pipeline,我为我的微服务系统写了一个网关。 网关是在node.js中编写的 该网关将请求转发给内部微服务,并在获得处理结果后响应客户端。 但是这个网关消耗的内存不断增加,每小时增加24Mb 你能帮我澄清一下原因吗: 代码如下: var express = require('express'); var requestify = require('requestify'); var app = express(); var request = require('request'); var con

我为我的微服务系统写了一个网关。 网关是在node.js中编写的

该网关将请求转发给内部微服务,并在获得处理结果后响应客户端。 但是这个网关消耗的内存不断增加,每小时增加24Mb

你能帮我澄清一下原因吗: 代码如下:

var express = require('express');
var requestify = require('requestify');
var app     = express();

var request = require('request');
var config  = require('./config.js');
var API_ERROR = 'error';
var DISCOVERY_NOTHING = 'nothing' ;
var TIMEOUT = 10000 ;//ms

function registerEntry(path,entryId) {
        app.use(path, function(req, res) {
            requestify.get(config.discovery+"?service_id="+entryId, {timeout:TIMEOUT}).then( function(response) { 
                var apiUrl  = response.getBody() ;
                if(apiUrl==DISCOVERY_NOTHING) {
                    res.send(API_ERROR);
                }   

                var url     = apiUrl + req.url ; 
                console.log(url);
                req.pipe(request(url)).pipe(res).on('error', function(e) {
                    res.send(API_ERROR);
                }); 
            }); 
        }); 
}

registerEntry('/authen','altp.authen') ;
registerEntry('/profile','altp.profile');
registerEntry('/question','altp.question');
registerEntry('/gameplay','altp.gameplay');
registerEntry('/admin','altp.admin');

app.listen(80, function() {
    console.log('listening at 80');
});

请复制/粘贴代码,请勿使用图像!我没有时间重写你的代码。我在开发自己的微服务网关()时遇到了类似的问题,直到我改用http代理进行代理()时,我才找到漏洞的来源。@Michelem:我添加了完整的code@slebetman:谢谢你,这是个好建议,我会尽力的,但首先我想解决这个问题,以避免它在未来。