linear
Version:
A simple setup micro-forum built in Node.js with Express and MongoDB.
62 lines (36 loc) • 1.37 kB
JavaScript
const {requireLogin} = require('../utils/auth');
const postController = require('../controllers/post');
const messageController = require('../controllers/message');
module.exports = router => {
router.get('/new', requireLogin, (req, res) => {
res.render('post_create', {
'page_title': req.__('Create New Post')
});
});
router.post('/new', requireLogin, (req, res, next) => {
postController.create(req.body, req.user.id).then(post => {
res.redirect(`/post/${post.slug}/${post.id}/`);
})
.catch(next);
});
router.get('/:slug?/:id', (req, res, next) => {
postController.show(req.params.id).then(post => {
res.render('post', {
'description': post.contents,
'page_title': post.title,
post
});
})
.catch(next);
});
router.post('/:slug?/:id/message/', requireLogin, (req, res, next) => {
messageController.create(req.params.id, req.body, req.user.id).then(message => {
if (req.params.slug) {
res.redirect(`/post/${req.params.slug}/${req.params.id}/#message-${message.id}`);
} else {
res.redirect(`/post/${req.params.id}/#message-${message.id}`);
}
})
.catch(next);
});
};