28 lines
734 B
JavaScript
28 lines
734 B
JavaScript
const express = require('express');
|
|
const morgan = require('morgan');
|
|
const cors = require('cors');
|
|
const scrape = require('./scrape.js');
|
|
const shuffle = require('shuffle-array');
|
|
|
|
const app = express();
|
|
|
|
app.use(cors())
|
|
|
|
const prod = process.env.NODE_ENV === 'production';
|
|
app.use(morgan(prod ? 'short' : 'dev'))
|
|
app.use(express.static(prod ? 'public' : '../client/build'))
|
|
|
|
let lastScrape;
|
|
let tags;
|
|
app.get('/spin', async (req, res) => {
|
|
if (!lastScrape || lastScrape < new Date() - 30*1000) {
|
|
tags = await scrape();
|
|
lastScrape = new Date();
|
|
}
|
|
res.json(shuffle.pick(tags, { picks: 30 }));
|
|
})
|
|
|
|
const port = process.env.PORT || 5000;
|
|
app.listen(port, () => {
|
|
console.log('Listening at port', port);
|
|
})
|