Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const net = require('net');
- const fs = require('fs');
- const server = net.createServer((socket) => {
- let buffer = "";
- let parsedRequest = new Map();
- socket.on('data', function(data){
- buffer += data;
- if(isDataEnd(buffer)){
- parsedRequest = parseDataToMap(buffer);
- console.log(parsedRequest);
- let requestLine = getRequestLine(buffer);
- console.log(requestLine);
- }
- });
- socket.on('error', (err) => {
- // handle errors here
- throw err;})
- });
- server.listen(process.env.PORT || 3000);
- function isDataEnd(data) {
- return data.endsWith('\r\n\r\n');
- }
- function parseDataToMap(data) {
- let dataMap = new Map();
- data.split('\r\n').forEach((element, index) => {
- if (index !== 0 && element !== '') {
- let keyVal = element.split(':',2);
- dataMap.set(keyVal[0], keyVal[1]);
- }
- });
- return dataMap;
- }
- function getRequestLine(buffer) {
- return buffer.toString().split(' ', 3)[1];;
- }
- function responseFile (fileName, response) {
- const filePath = "/path/to/archive.rar" // or any file format
- fs.exists(filePath, function(exists){
- if (exists) {
- response.writeHead(200, {
- "Content-Type": "application/octet-stream",
- "Content-Disposition": "attachment; filename=" + fileName
- });
- fs.createReadStream(filePath).pipe(response);
- } else {
- response.writeHead(400, {"Content-Type": "text/plain"});
- response.end("ERROR File does not exist");
- }
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement