74 lines
1.5 KiB
JavaScript
74 lines
1.5 KiB
JavaScript
//environment variables
|
|
require('dotenv').config();
|
|
|
|
//create the server
|
|
const express = require('express');
|
|
const app = express();
|
|
const server = require('http').Server(app);
|
|
const cors = require('cors');
|
|
|
|
//config
|
|
app.use(express.json());
|
|
app.use(cors());
|
|
|
|
//database connection
|
|
const database = require('./database');
|
|
|
|
//access the news
|
|
app.use('/news', require('./news'));
|
|
|
|
//error on access
|
|
app.get('*', (req, res) => {
|
|
res.redirect('https://github.com/krgamestudios/news-server');
|
|
});
|
|
|
|
//startup
|
|
server.listen(process.env.WEB_PORT || 3100, async (err) => {
|
|
await database.sync();
|
|
console.log(`listening to localhost:${process.env.WEB_PORT || 3100}`);
|
|
|
|
//parse the unrendered data from the database
|
|
const markdownIt = require('markdown-it')();
|
|
const { articles, revisions } = require('./database/models');
|
|
|
|
const missingArticles = await articles.findAll({
|
|
where: {
|
|
rendered: ''
|
|
}
|
|
});
|
|
|
|
const missingRevisions = await revisions.findAll({
|
|
where: {
|
|
rendered: ''
|
|
}
|
|
});
|
|
|
|
await Promise.all(
|
|
missingArticles.map(async ma => {
|
|
ma.update({
|
|
rendered: markdownIt.render(ma.body)
|
|
}, {
|
|
where: {
|
|
index: ma.index
|
|
}
|
|
});
|
|
})
|
|
)
|
|
.then(result => {if (result.length > 0) console.log('Rendered articles in HTML'); })
|
|
;
|
|
|
|
await Promise.all(
|
|
missingRevisions.map(async mr => {
|
|
mr.update({
|
|
rendered: markdownIt.render(mr.body)
|
|
}, {
|
|
where: {
|
|
index: mr.index
|
|
}
|
|
});
|
|
})
|
|
)
|
|
.then(result => {if (result.length > 0) console.log('Rendered revisions in HTML'); })
|
|
;
|
|
});
|