最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

节点服务器正在崩溃,错误缓冲区.js:488抛出新错误('toString failed');

IT培训 admin 9浏览 0评论

节点服务器正在崩溃,错误缓冲区.js:488抛出新错误('toString failed');

我们在nodejs(服务器A)上构建了一个app,它使用REST API从另一个nodejs app(服务器B)获取数据。

类似地,对于下载文件,服务器A上的服务器发出请求,服务器B从AWS S3获取文件并将数据传输回服务器A.

该系统运行良好,我们可以下载高达1GB的文件。

问题有时服务器A崩溃,出现以下错误:

    buffer.js:488
    throw new Error('toString failed');
    ^

Error: toString failed
    at Buffer.toString (buffer.js:488:11)
    at Request.<anonymous> (/var/www/sky/portal/node_modules/request/request.js:1145:39)
    at emitOne (events.js:95:20)
    at Request.emit (events.js:182:7)
    at IncomingMessage.<anonymous> (/var/www/sky/portal/node_modules/request/request.js:1091:12)
    at IncomingMessage.g (events.js:273:16)
    at emitNone (events.js:85:20)
    at IncomingMessage.emit (events.js:179:7)
    at endReadableNT (_stream_readable.js:913:12)
    at _combinedTickCallback (internal/process/next_tick.js:74:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)

服务器A使用以下代码调用服务器B:

exports.downloadAsset = function(req, res, assetUrl, cb) {
  res.cookie('fileDownload', 'true');
  request(
    config.api.baseUrl + assetUrl
    ,
    function(error, response, body) {

    }
  ).pipe(res);
}

我们不确定应用程序崩溃的位置。请建议。

回答如下:

解决方案我用来排序上面的问题:我不得不修改我们的流程。我们将数据从服务器B流式传输到服务器A,但现在服务器B正在向服务器A发送签名的URL,并且正在使用该签名的URL直接从S3下载文件。

节点服务器正在崩溃,错误缓冲区.js:488抛出新错误('toString failed');

我们在nodejs(服务器A)上构建了一个app,它使用REST API从另一个nodejs app(服务器B)获取数据。

类似地,对于下载文件,服务器A上的服务器发出请求,服务器B从AWS S3获取文件并将数据传输回服务器A.

该系统运行良好,我们可以下载高达1GB的文件。

问题有时服务器A崩溃,出现以下错误:

    buffer.js:488
    throw new Error('toString failed');
    ^

Error: toString failed
    at Buffer.toString (buffer.js:488:11)
    at Request.<anonymous> (/var/www/sky/portal/node_modules/request/request.js:1145:39)
    at emitOne (events.js:95:20)
    at Request.emit (events.js:182:7)
    at IncomingMessage.<anonymous> (/var/www/sky/portal/node_modules/request/request.js:1091:12)
    at IncomingMessage.g (events.js:273:16)
    at emitNone (events.js:85:20)
    at IncomingMessage.emit (events.js:179:7)
    at endReadableNT (_stream_readable.js:913:12)
    at _combinedTickCallback (internal/process/next_tick.js:74:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)

服务器A使用以下代码调用服务器B:

exports.downloadAsset = function(req, res, assetUrl, cb) {
  res.cookie('fileDownload', 'true');
  request(
    config.api.baseUrl + assetUrl
    ,
    function(error, response, body) {

    }
  ).pipe(res);
}

我们不确定应用程序崩溃的位置。请建议。

回答如下:

解决方案我用来排序上面的问题:我不得不修改我们的流程。我们将数据从服务器B流式传输到服务器A,但现在服务器B正在向服务器A发送签名的URL,并且正在使用该签名的URL直接从S3下载文件。

发布评论

评论列表 (0)

  1. 暂无评论