从 marklogic 数据库向前端显示二进制文档

Displaying binary docs to front end from marklogic database

是否可以通过执行marklogic node js的node程序将marklogic数据库中的二进制文件带给前端用户api?

是的,这是可能的,尽管需要您提供更多信息 - 我们在这里谈论的是哪种二进制文件,您是否愿意提供它或使其可供下载,以及您是否使用任何Node.js 用于提供此内容的包(例如 ExpressJS)。一般来说,使用流以块的形式读取二进制文件是一种很好的做法,而不是从数据库中读取整个二进制文件。

这是一个使用 Express 的代码片段,Node.js 展示了这个概念:

const displayImage = ((req, res) => {
  const uri = `/image/${req.params.id}`; //use your URI
  res.writeHead(200, { 'Content-type': 'image/png' }); //use your Content-type
  const data = [];
  db.documents.read(uri).stream('chunked')
  .on('data', chunk => data.push(chunk))
  .on('error', error => console.error(error))
  .on('end', () => {
    let buffer = new Buffer(data.length).fill(0);
    buffer = Buffer.concat(data);
    res.end(buffer);
  });
});

你的问题不是很清楚。或者至少不是很具体。通常,二进制文档在查询和返回时与任何其他内容一样对待。 node.js 中有一些您可能关心的项目 - 例如分块数据。

请参阅此处了解一般信息: https://docs.marklogic.com/guide/app-dev/binaries

对于我认为您可能会问的问题,请查看关于 node.js 的精彩 write-up 和二进制内容: https://developer.marklogic.com/blog/working-with-binary-documents 此页面充满了可能对您有所帮助的好东西。我建议您 运行 从上到下阅读文档。值得一读。具体来说,请查看标题部分 "Displaying Images"。这是一个图像。但是,该技术对于任何其他二进制内容都是相同的。