使用marklogic Nodejs API读取大型文档

时间:2015-04-17 05:51:49

标签: node.js marklogic

我正在尝试使用MarkLogic的Node.js读取xml / json文档。我从以下URL下载了Node.js API代码库。

https://github.com/marklogic/node-client-api

它适用于500KB等小型文档。但我们的要求是读取大型文档,如2 MB或10 MB。

关于这一点,我们有两种情况,如下所述: -

案例1: - 每当我尝试使用MarkLogic Node.js API读取文档时,我应该获得多个块,但我只得到一个块作为响应。因此,它无法正常工作。

var chunks = 0;
var length = 0;
db.documents.read("test.xml").stream('chunked').
  on('data', function(chunk) {
    console.log(chunk);
    console.log(chunk.length);
    chunks++;
    length += chunk.length;
  }).
  on('error', function(error) {
    console.log(JSON.stringify(error));
  }).
  on('end', function() {
    console.log('read '+chunks+' chunks of '+length+' length');
    console.log('done');
  });

案例2: - 每当我尝试使用" http-digest-client"读取一些大型文档(如2 MB或10 MB)时包然后它工作正常,我得到完整的xml作为响应。

var digest = require('http-digest-client')('<Username>', '<password>');
digest.request({
  host: '<Host server>',
  path: '/v1/documents?uri=test.xml',
  port: 8007,
  method: 'GET',
}, function (res) {
  reply(res);
});

我在下面提到的示例中使用大文档对此进行了测试(请参阅下面的网址),但我得到了与上述案例1中描述的相同的回复。

https://github.com/marklogic/node-client-api/blob/develop/examples/read-stream.js#L27

根据我的要求,我想使用MarkLogic Node.js API(案例1)阅读大型文档。

  1. 如何使用MarkLogic Node.js API读取大型文档?
  2. 是否有增加池内存大小或任何其他内存大小的选项?
  3. 此问题是否与内存大小有关?

1 个答案:

答案 0 :(得分:1)

感谢代码示例。我能够重现这个问题。

请在以下位置针对MarkLogic Node.js API提交问题:

https://github.com/marklogic/node-client-api/issues