const fs = require('fs');
const http = require('http');
const { parse } = require('url');
const server = http.createServer((req, res) => {
const { query } = parse(req.url, true);
const imageSource = query.image;
if (!imageSource) {
res.writeHead(400, { 'Content-Type': 'text/plain' });
res.end('Bad Request: Image parameter is required');
return;
}
const imageStream = fs.createWriteStream('output.jpg');
http.get(imageSource, (imageResponse) => {
if (imageResponse.statusCode !== 200) {
res.writeHead(imageResponse.statusCode, { 'Content-Type': 'text/plain' });
res.end('Error: Unable to fetch image');
return;
}
imageResponse.pipe(imageStream);
imageStream.on('finish', () => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Image successfully downloaded and saved');
});
imageStream.on('error', (err) => {
res.writeHead(500, { 'Content-Type': 'text/plain' });
res.end(`Error: ${err.message}`);
});
});
});
const PORT = 3000;
server.listen(PORT, () => console.log(`Server running at http://localhost:${PORT}/`));