Le front-end télécharge un fichier via formdata
Le framework back-end est koa, et le middleware co-busboy est utilisé pour analyser la demande
Il existe un exemple simple dans le document co-busboy qui peut obtenir un ". file stream" FileStream via l'analyse, puis utilisez node Le module fs écrit les fichiers localement, ce qui est assez simple.
Maintenant, mon problème est de stocker les fichiers dans la base de données sous forme de blobs au lieu de les stocker localement
Ensuite, je réfléchis à la façon de les transférer depuis FileStream
Ce FileStream est imprimé comme suit :
FileStream {
_readableState:
ReadableState {
objectMode: false,
highWaterMark: 16384,
buffer: BufferList { head: [Object], tail: [Object], length: 1 },
length: 10256,
pipes: null,
pipesCount: 0,
flowing: null,
ended: false,
endEmitted: false,
reading: true,
sync: false,
needReadable: true,
emittedReadable: false,
readableListening: false,
resumeScheduled: false,
defaultEncoding: 'utf8',
ranOut: false,
awaitDrain: 0,
readingMore: false,
decoder: null,
encoding: null },
readable: true,
domain: null,
_events: { end: [Function] },
_eventsCount: 1,
_maxListeners: undefined,
truncated: false,
_read: [Function],
fieldname: 'homework',
filename: '2017-1-18.json',
encoding: '7bit',
transferEncoding: '7bit',
mime: 'application/octet-stream',
mimeType: 'application/octet-stream' }
À ce moment-là, j'ai vu un attribut appelé buffer, et j'ai également essayé le module Buffer dans node, mais cela ne semblait pas fonctionner.
En bref, la question est de savoir comment convertir un flux de fichiers au format blob ?
S'il vous plaît, donnez-moi quelques conseils
J'ai décidé de ne pas stocker les fichiers dans la base de données
MongoDB ne le fait pas
blob
格式,你需要的是GridFS
. Jetez d’abord un œil à la documentation du pilote, elle contient des exemples. S’il y a quelque chose que vous ne comprenez pas, discutez-en plus tard.https://mongodb.github.io/nod...