You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.5 KiB

  1. var fs = require('fs');
  2. //erstellt JSONObjekt
  3. let rawdata = fs.readFileSync('./public/models/blog.json');
  4. //wandelt JSONObjekt in JsObjekt
  5. let blogInhalt = JSON.parse(rawdata);
  6. var getAllPosts = (req, res) => {
  7. for (i = 0; i < blogInhalt.length; i++) {
  8. console.log(blogInhalt[i].id, ".", blogInhalt[i].title);
  9. }
  10. res.send({ blogInhalt });
  11. }
  12. var createPost = (req, res) => {
  13. let fileName = '';
  14. try {
  15. if (!req.files) {
  16. console.log('keine Datei hochgeladen');
  17. } else {
  18. let file = req.files.datei;
  19. file.mv('./uploads/' + file.name);
  20. console.log('Upload erfolgreich' + file.name);
  21. fileName = './uploads/' + file.name;
  22. }
  23. } catch (err) {
  24. res.status(500).send(err);
  25. }
  26. let blogeintrag = {
  27. id: blogInhalt.length ? blogInhalt[blogInhalt.length - 1].id + 1 : 1,
  28. title: req.body.title,
  29. username: req.body.username,
  30. date: req.body.date,
  31. text: req.body.text,
  32. datei: fileName
  33. }
  34. console.log(blogeintrag);
  35. //hänge blogeintrag an blogInhalt
  36. blogInhalt.push(blogeintrag);
  37. let date = JSON.stringify(blogInhalt, null, 2);
  38. fs.writeFileSync('./public/models/blog.json', date);
  39. res.render('blogPost', { title: 'Nächster Post' })
  40. }
  41. var getPost = (req, res) => {
  42. let blogID = parseInt(req.params.postID);
  43. console.log(blogID);
  44. let found = blogInhalt.find(element => element.id === blogID);
  45. found ? res.send(found) : res.send('nichts gefunden');
  46. }
  47. module.exports = {
  48. getAllPosts,
  49. createPost,
  50. getPost
  51. }