From a7ad34028371f5ef50dc0fd7ac29af6d9f541370 Mon Sep 17 00:00:00 2001 From: Matjaz Date: Sat, 8 Jan 2022 22:03:47 +0100 Subject: [PATCH] Error handling for filesystem reads. --- routes/articles.js | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/routes/articles.js b/routes/articles.js index 4cc734a..897bc1a 100644 --- a/routes/articles.js +++ b/routes/articles.js @@ -8,29 +8,32 @@ function toTitleCase(str) { /* GET home page. */ function articles(request, response) { - var articleList = fs.readdirSync('./articles'); - articleList.reverse(); - var contents = ''; - articleList.forEach(function(item) { - var title = item.replace('.gmi', '').replace(/\-/g, ' '); - title = toTitleCase(title); - contents += `=> /articles/${item} ${title}\r\n`; - }); - response.send(`20 text/gemini\r\n -# Articles by Uplink:SI -List of Articles: -${contents} -`); + var articlesPage = `20 text/gemini\r\n\r\n# Articles by Uplink:SI\r\nList of Articles:\r\n${contents}\r\n`; + + try { + var articleList = fs.readdirSync('./articles'); + articleList.reverse(); + var contents = ''; + articleList.forEach(function(item) { + var title = item.replace('.gmi', '').replace(/\-/g, ' '); + title = toTitleCase(title); + contents += `=> /articles/${item} ${title}\r\n`; + }); + response.send(articlesPage); + } catch (error) { + response.error(51); + } + } function articles_item(request, response) { - var article = fs.readFileSync('./articles/' + request.params.item); - response.send(`20 text/gemini\r\n -${article} - -=> /articles/ 📓Articles -=> / 🏡Home -`); + try { + var article = fs.readFileSync('./articles/' + request.params.item); + var articlePage = `20 text/gemini\r\n\r\n${article}\r\n\r\n=> /articles/ 📓Articles\r\n=> / 🏡Home\r\n` + response.send(articlePage); + } catch (error) { + response.error(51); + } } module.exports.articles = articles;