diff --git a/Node/projects/big-file-server/index.mjs b/Node/projects/big-file-server/index.mjs new file mode 100644 index 0000000..8aea36f --- /dev/null +++ b/Node/projects/big-file-server/index.mjs @@ -0,0 +1,17 @@ +import fs from 'node:fs' +import http from 'node:http' +import pump from 'pump' + +const server = http.createServer((req, res) => { + const stream = fs.createReadStream('big.file') + pump(stream, res, done) +}) + +function done(err) { + if (err) { + return console.error('File was not fully streamed to the user', err) + } + console.log('File was fully streamed to the user') +} + +server.listen(3000) diff --git a/Node/projects/big-file-server/package-lock.json b/Node/projects/big-file-server/package-lock.json new file mode 100644 index 0000000..9f270c8 --- /dev/null +++ b/Node/projects/big-file-server/package-lock.json @@ -0,0 +1,46 @@ +{ + "name": "big-file-server", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "big-file-server", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "pump": "^3.0.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + } + } +} diff --git a/Node/projects/big-file-server/package.json b/Node/projects/big-file-server/package.json new file mode 100644 index 0000000..3393414 --- /dev/null +++ b/Node/projects/big-file-server/package.json @@ -0,0 +1,15 @@ +{ + "name": "big-file-server", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "description": "", + "dependencies": { + "pump": "^3.0.0" + } +}