laravel-rabbitmq/.docker/puppeteer/server.js

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}/`);
});