hacker-news-cli/api/articles.js
2019-02-10 16:07:09 -08:00

44 lines
1019 B
JavaScript

const router = require('express').Router();
const { Article } = require('../db/models');
const buildPage = require('./buildPage');
module.exports = router;
router.get('/', async (req, res, next) => {
try {
const articles = await Article.findAll();
const tbl = articles
.map(
article => `<tr><td>${article.title}</td><td>${article.link}</td></tr>`
)
.join();
const page = buildPage(tbl);
console.log(page);
res.status(201).send(page);
} catch (err) {
next(err);
}
});
router.get('/:id', async (req, res, next) => {
try {
const article = await Article.findById(req.params.id);
console.log(article.title);
console.log(`by: ${article.author}`);
console.log(article.text);
res.status(201).send(article);
} catch (err) {
next(err);
}
});
router.post('/', async (req, res, next) => {
const body = req.body;
try {
const article = await Article.create(body);
res.redirect(article.id);
} catch (err) {
next(err);
}
});