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
			| 
								 
											3 years ago
										 
									 | 
							
								'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}`)
							 | 
						||
| 
								 | 
							
								})
							 |