Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Dependencies
- */
- const express = require('express')
- const Multer = require('multer')
- const Busboy = require('busboy')
- const os = require('os')
- const fs = require('fs')
- const path = require('path')
- const app = express()
- app.get('/', (req, res, next) => res.json({ cool: true }))
- app.post('/upload', (req, res, next) => {
- console.log('upload?')
- console.log(req.rawBody)
- const busboy = new Busboy({ headers: req.headers })
- // This object will accumulate all the uploaded files, keyed by their name.
- const uploads = {}
- const tmpdir = os.tmpdir()
- // This callback will be invoked for each file uploaded.
- busboy.on('file', (fieldname, file, filename, encoding, mimetype) => {
- console.log(`got file ${filename}`)
- // Note that os.tmpdir() is an in-memory file system, so should
- // only be used for files small enough to fit in memory.
- const filepath = path.join(tmpdir, filename)
- console.log(filepath)
- uploads[fieldname] = filepath
- file.pipe(fs.createWriteStream(filepath))
- })
- // This callback will be invoked after all uploaded files are saved.
- busboy.on('finish', () => {
- // *** Process uploaded files here ***
- for (const name in uploads) {
- const file = uploads[name]
- fs.unlinkSync(file)
- }
- return res.json({ message: `file uploaded` })
- res.end()
- })
- busboy.end(req.rawBody)
- })
- module.exports = { app }
Add Comment
Please, Sign In to add comment