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