Cómo manejar la carga de archivos en Node.js

Cómo usar Node.js y en particular Express para manejar archivos cargados

Encómo cargar un archivo usando FetchExpliqué cómo subir un archivo a un servidor usandoHa podido recuperar.

En este post les voy a mostrar la parte 2: cómo usarNode.js, y en particularRápido, para manejar archivos cargados.

Instala elexpress-fileuploadmódulo npm:

npm install express-fileupload

y agréguelo a su middleware:

import fileupload from 'express-fileupload'

//or const fileupload = require(‘express-fileupload’)

Después de crear su aplicación Express, agregue:

app.use(
  fileupload(),
  //...

Esto es necesario porque, de lo contrario, el servidor no puede analizar las cargas de archivos.

Ahora los archivos cargados se proporcionan enreq.files. Si olvida agregar ese middleware,req.filesseríaundefined.

app.post('/saveImage', (req, res) => {
  const image = req.files.myFile
  const path = __dirname + '/images/' + image.name

image.mv(path, (error) => { if (error) { console.error(error) res.writeHead(500, { ‘Content-Type’: ‘application/json’ }) res.end(JSON.stringify({ status: ‘error’, message: error })) return }

<span style="color:#a6e22e">res</span>.<span style="color:#a6e22e">writeHead</span>(<span style="color:#ae81ff">200</span>, {
  <span style="color:#e6db74">'Content-Type'</span><span style="color:#f92672">:</span> <span style="color:#e6db74">'application/json'</span>
})
<span style="color:#a6e22e">res</span>.<span style="color:#a6e22e">end</span>(<span style="color:#a6e22e">JSON</span>.<span style="color:#a6e22e">stringify</span>({ <span style="color:#a6e22e">status</span><span style="color:#f92672">:</span> <span style="color:#e6db74">'success'</span>, <span style="color:#a6e22e">path</span><span style="color:#f92672">:</span> <span style="color:#e6db74">'/images/'</span> <span style="color:#f92672">+</span> <span style="color:#a6e22e">image</span>.<span style="color:#a6e22e">name</span> }))

}) })

Esta es la menor cantidad de código necesaria para manejar archivos.

Llamamos almvpropiedad de la imagen cargada. Eso nos lo proporciona elexpress-fileuploadmódulo. Lo movemos apathy luego comunicamos el éxito (¡o un error!) al cliente.

Descarga mi gratisManual de Node.js


Más tutoriales de nodos: