UNPKG

file-send

Version:
46 lines (40 loc) 1.15 kB
'use strict'; const url = require('url'); const http = require('http'); const cluster = require('cluster'); const FileSend = require('../index'); const NUMCPUS = require('os').cpus().length; // create server function createServer(root, port) { http .createServer(function(request, response) { const send = new FileSend(request, url.parse(request.url).pathname, { root: root || process.cwd(), maxAge: '3day', index: ['index.html'], ignore: ['**/.*?(/**)'] }); send.pipe(response); }) .listen(port || 8080); } if (cluster.isMaster) { // fork workers for (let i = 0; i < NUMCPUS; i++) { const worker = cluster.fork(); // worker is listening if (i === NUMCPUS - 1) { worker.on('listening', address => { console.log( 'Server run at:', (address.address || '127.0.0.1') + ':' + address.port, '\r\n-----------------------------------------------------------------------------------------' ); }); } } } else { // workers can share any tcp connection // in this case it is an http server createServer(); }