web-dev-qa-db-fra.com

Node.js ne peux pas créer de blobs?

Je travaille avec node.js et j'ai transféré mon audio sur mon serveur node.js . Maintenant, j'ai remarqué pendant le processus de création du blob audio:

var audioBlob = new Blob([dataview], { type: 'audio/wav' });

Que je reçois une erreur ReferenceError dans le nouveau blob ..__ Il semble que Blob n’est pas pris en charge . Comment créer un blob que je voudrais enregistrer avec le module node.js fs.

Merci les gars!

43
zer02

La solution à ce problème consiste à créer une fonction pouvant convertir entre les tampons de tableau et les tampons de nœud. :)

Convertir un tampon binaire NodeJS en JavaScript ArrayBuffer

Dans les versions récentes des nœuds, il suffit de:

let buffer = Buffer.from(arraybuffer);
let arraybuffer = Uint8Array.from(buffer).buffer;
17
zer02

A titre de suggestion, vous pouvez lire ceci: http://howtonode.org/really-simple-file-uploads

Je veux dire, je suppose que je ne sais pas ce que vous essayez de faire. Il n’ya peut-être pas de module pour les blobs, mais si vous voulez simplement écrire quelque chose sur le disque, il y a le module fs .. Ce code ne fonctionnera pas directement, mais ..

var fs = require('fs')
  , express = require('express')

app.post('/upload', function (req, res) {
  // asynch call to write file to disk
  fs.write("/tmp/file.mp3", req.params.body, function (err) {
    if (err) console.log(err)
  });
  res.end();
});

Il suffit de poster un mp3, ou quelque chose de vraiment, sur/upload, et il va l'écrire sur le disque. Vous pouvez faire la validation que vous voulez.

0
sent1nel