index.js (734B)
1 const express = require('express'); 2 const morgan = require('morgan'); 3 const cors = require('cors'); 4 const scrape = require('./scrape.js'); 5 const shuffle = require('shuffle-array'); 6 7 const app = express(); 8 9 app.use(cors()) 10 11 const prod = process.env.NODE_ENV === 'production'; 12 app.use(morgan(prod ? 'short' : 'dev')) 13 app.use(express.static(prod ? 'public' : '../client/build')) 14 15 let lastScrape; 16 let tags; 17 app.get('/spin', async (req, res) => { 18 if (!lastScrape || lastScrape < new Date() - 30*1000) { 19 tags = await scrape(); 20 lastScrape = new Date(); 21 } 22 res.json(shuffle.pick(tags, { picks: 30 })); 23 }) 24 25 const port = process.env.PORT || 5000; 26 app.listen(port, () => { 27 console.log('Listening at port', port); 28 })