UNPKG

candy

Version:

a micro bbs system based on duoshuo.com apis

52 lines (47 loc) 1.82 kB
var perpage = 20; var isPage = function(p) { if (!p) return false; var n = parseInt(p); if (isNaN(n)) return false; return n; } // GET /page/:page -> show exports = module.exports = function(ctrlers, theme) { var board = ctrlers.board, thread = ctrlers.thread; return { // PAGE: show selected page show: function(req, res, next) { var alias = req.params.board; var page = isPage(req.params.page) || 1; if (alias) { // pager of board var query = {} query.url = alias; board.fetch(page, perpage, query, function(err, result) { if (err) return next(err); if (!result) return next(new Error('404')); if (result.page.max > 1 && result.threads.length === 0) return next(new Error('404')); theme.render('flat/board/index', result, function(err, html) { if (err) return next(err); return res.send(html); }); }); } else { // pager of thread thread.fetch(page, perpage, {}, function(err, threads, pager) { if (err) return next(err); if (!threads) return next(new Error('404')); if (pager.max > 1 && threads.length === 0) return next(new Error('404')); theme.render('flat/index', { threads: threads, page: pager }, function(err, html) { if (err) return next(err); return res.send(html); }); }); } } } }