server.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import express from 'express';
  2. import dotenv from 'dotenv'
  3. import { saveImage, scrapeCritters, CONFIG, storeData } from './src/scraper';
  4. const app: express.Application = express();
  5. dotenv.config();
  6. if (process.env.AC_FISH === undefined || process.env.AC_INSECT === undefined) {
  7. console.error("Could not load config file")
  8. process.exit();
  9. }
  10. app.use(express.static('public', {
  11. setHeaders: function setHeaders(res, path, stat) {
  12. res.header('Access-Control-Allow-Origin', '*');
  13. res.header('Access-Control-Allow-Methods', 'GET');
  14. res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  15. }}))
  16. app.use((req, res, next)=> {
  17. res.header("Access-Control-Allow-Origin", "*");
  18. res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  19. if ('OPTIONS' == req.method) {
  20. res.sendStatus(200);
  21. } else {
  22. next();
  23. }
  24. })
  25. app.get('/', (req, res) => { res.send('Hello World!') });
  26. const getFishes = () => {
  27. scrapeCritters({url: process.env.AC_FISH!, type: CONFIG.Fish}).then(saveImage('images/fishes/')).then(storeData(`${__dirname}/public/data/fishes.json`));
  28. }
  29. const getInsects = () => {
  30. scrapeCritters({url:process.env.AC_INSECT!, type: CONFIG.Insect}).then(saveImage('images/insects/')).then(storeData(`${__dirname}/public/data/insects.json`))
  31. }
  32. app.listen(process.env.PORT, () => {
  33. getFishes();
  34. getInsects();
  35. console.log(`Scrapper app listening at http://localhost:${process.env.PORT}`);
  36. });