2017-10-04 2 views

Répondre

2

Oui, il est possible, bien que d'autres informations soient nécessaires de votre côté - de quel type de binaire s'agit-il ici, si vous souhaitez le servir ou le rendre disponible au téléchargement et si vous utilisez un nœud package .js pour servir ce contenu (ex: ExpressJS). D'une manière générale, il est recommandé d'utiliser les flux pour lire les binaires en morceaux plutôt que de lire l'intégralité du binaire de la base de données en une seule pièce.

Voici un extrait de code à l'aide Express et Node.js démontrant ce concept:

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); 
    }); 
}); 
+0

Merci pour l'explication. Mais pouvez-vous expliquer ce qu'est le tampon et pourquoi utilisons-nous un nouveau mot-clé? –

+0

Il s'agit d'une API Node.js intégrée permettant d'interagir avec les flux: https://nodejs.org/api/buffer.html#buffer_buffer – Tamas

1

Vous ne disposez pas d'une question très claire. Ou du moins pas très spécifique. En général, les documents binaires sont traités de la même manière que tout autre contenu lorsqu'ils sont interrogés et renvoyés. Il y a des éléments dans node.js qui vous intéressent - comme des données fragmentées.

S'il vous plaît voir ici pour des informations générales: https://docs.marklogic.com/guide/app-dev/binaries

Pour ce que je pense que vous êtes peut-être demander, un coup d'oeil à ce grand écriture sur Node.js et contenu binaire: https://developer.marklogic.com/blog/working-with-binary-documents Cette page est pleine de goodies qui peuvent vous aider. Je vous suggère de parcourir le document de haut en bas. Ça vaut la peine d'être lu. Plus précisément, jetez un oeil à la section intitulée "Affichage des images". C'est pour une image. Cependant, la technique serait la même pour tout autre contenu binaire.