You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							38 lines
						
					
					
						
							922 B
						
					
					
				
			
		
		
	
	
							38 lines
						
					
					
						
							922 B
						
					
					
				'use strict'
 | 
						|
 | 
						|
const fastify = require('fastify')()
 | 
						|
const fs = require('fs')
 | 
						|
const path = require('path')
 | 
						|
const pump = require('pump')
 | 
						|
const form = path.join(__dirname, '..', 'form.html')
 | 
						|
 | 
						|
fastify.register(require('..'))
 | 
						|
 | 
						|
fastify.get('/', function (req, reply) {
 | 
						|
  reply.type('text/html').send(fs.createReadStream(form))
 | 
						|
})
 | 
						|
 | 
						|
fastify.post('/upload/files', function (req, reply) {
 | 
						|
  const mp = req.multipart(handler, function (err) {
 | 
						|
    if (err) {
 | 
						|
      reply.send(err)
 | 
						|
      return
 | 
						|
    }
 | 
						|
    console.log('upload completed', process.memoryUsage().rss)
 | 
						|
    reply.code(200).send()
 | 
						|
  })
 | 
						|
 | 
						|
  mp.on('field', function (key, value) {
 | 
						|
    console.log('form-data', key, value)
 | 
						|
  })
 | 
						|
 | 
						|
  function handler (field, file, filename, encoding, mimetype) {
 | 
						|
    pump(file, fs.createWriteStream('a-destination'))
 | 
						|
  }
 | 
						|
})
 | 
						|
 | 
						|
fastify.listen(3000, err => {
 | 
						|
  if (err) throw err
 | 
						|
  console.log(`server listening on ${fastify.server.address().port}`)
 | 
						|
})
 |