Как обрабатывать загрузку файлов в Node.js

Как использовать Node.js и, в частности, Express для обработки загруженных файлов

Вкак загрузить файл с помощью FetchЯ объяснил, как загрузить файл на сервер, используяПринести.

В этом посте я покажу вам часть 2: как использоватьNode.js, и в частностивыражать, для обработки загруженных файлов.

Установитеexpress-fileuploadмодуль npm:

npm install express-fileupload

и добавьте его в свое промежуточное ПО:

import fileupload from 'express-fileupload'

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

После создания приложения Express добавьте:

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

Это необходимо, потому что в противном случае сервер не сможет проанализировать загруженные файлы.

Теперь загруженные файлы представлены вreq.files. Если вы забудете добавить это промежуточное ПО,req.filesбыло быundefined.

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> }))

}) })

Это наименьший объем кода, необходимый для обработки файлов.

Мы называемmvсвойство загруженного изображения. Это предоставлено намexpress-fileuploadмодуль. Мы перемещаем его вpathа затем мы сообщаем клиенту об успехе (или ошибке!).

Скачать мою бесплатнуюСправочник по Node.js


Дополнительные руководства по узлам: