56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| const http = require('http');
 | |
| const url = require('url');
 | |
| const fs = require('fs');
 | |
| const puppeteer = require('./puppeteer');
 | |
| 
 | |
| // Create an HTTP server
 | |
| const server = http.createServer((req, res) => {
 | |
|   const parseUrl = url.parse(req.url, true);
 | |
| 
 | |
|   const fail = (error) => {
 | |
|     res.writeHead(200, {'Content-Type': 'application/json'});
 | |
|     res.end(JSON.stringify({
 | |
|       status: false,
 | |
|       message: error
 | |
|     }))
 | |
|   }
 | |
| 
 | |
|   const config = {
 | |
|     screenshotPath: './screenshot2.jpg'
 | |
|   }
 | |
| 
 | |
|   if (parseUrl.query.url) {
 | |
|     config.url = parseUrl.query.url
 | |
|   }
 | |
| 
 | |
| 
 | |
|   try {
 | |
|     puppeteer(config)
 | |
|       .then(function() {
 | |
|         fs.readFile(config.screenshotPath, (err, data) => {
 | |
|           if (err) {
 | |
|             res.writeHead(500);
 | |
|             res.end('Internal Server Error');
 | |
|           } else {
 | |
|             res.writeHead(200, {'Content-Type': 'image/jpeg'});
 | |
|             res.end(data);
 | |
|           }
 | |
|         });
 | |
|       })
 | |
|       .catch(function(error) {
 | |
|         fail(error.toString())
 | |
|       });
 | |
|   } catch (error) {
 | |
|     fail(error.toString())
 | |
|   }
 | |
| });
 | |
| 
 | |
| // Set the port to listen to
 | |
| const port = process.env.PORT || 4000;
 | |
| const host = '0.0.0.0'; // Listen on all network interfaces
 | |
| 
 | |
| // Start the server
 | |
| server.listen(port, host, () => {
 | |
|   console.log(`Server running at http://${host}:${port}/`);
 | |
| });
 |