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.

96 lines
2.5 KiB

  1. var express = require('express');
  2. let res = require('express/lib/response');
  3. var router = express.Router();
  4. //fileStream ermöglicht Lesen und Schreiben auf Festplatte
  5. var fs = require('fs');
  6. const { ServerResponse } = require('http');
  7. //let blog = [];
  8. //erstellt JSONObjekt
  9. let rawdata = fs.readFileSync('./public/models/blog.json');
  10. //wandelt JSONObjekt in JsObjekt
  11. let blogInhalt = JSON.parse(rawdata);
  12. /* GET home page. */
  13. router.route('/')
  14. .get((req, res, next) => { // => Pfeilfunktion: ersetzt function()
  15. for (i = 0; i < blogInhalt.length; i++) {
  16. console.log(blogInhalt[i].id, ".", blogInhalt[i].title);
  17. }
  18. res.send({ blogInhalt });
  19. })
  20. .post((req, res, next) => {
  21. /*let blogeintrag = [];
  22. let title = req.body.title;
  23. let username = req.body.username;
  24. let date = req.body.date;
  25. let text = req.body.text;
  26. console.log(title);
  27. blogeintrag.push(title, username, date, text);
  28. blog.push(blogeintrag); */
  29. let blogID;
  30. if (blogInhalt.length == 0) {
  31. blogID = 1;
  32. } else {
  33. blogID = (blogInhalt[blogInhalt.length - 1].id) + 1;
  34. }
  35. try {
  36. if (!req.body.file) {
  37. res.send({
  38. status: false,
  39. message: "No file received"
  40. });
  41. } else {
  42. let file = req.body.file;
  43. file.mv('./uploads/' + file.name);
  44. res.send('freude...' + file.name);
  45. console.log("Datei empfangen");
  46. }
  47. } catch (err) {
  48. res.status(500).send(err);
  49. }
  50. let blogeintrag = {
  51. id: blogID,
  52. title: req.body.title,
  53. username: req.body.username,
  54. date: req.body.date,
  55. text: req.body.text,
  56. file: req.body.file
  57. }
  58. console.log(blogeintrag);
  59. //hänge blogeintrag an blogInhalt
  60. blogInhalt.push(blogeintrag);
  61. let date = JSON.stringify(blogInhalt, null, 2);
  62. fs.writeFileSync('./public/models/blog.json', date);
  63. res.render('blogPost', { title: 'Nächster Post' })
  64. });
  65. router.get('/newPost', function (req, res, next) {
  66. res.render('blogPost', { title: 'BlogEintrag' });
  67. });
  68. router.get('/:postID', function (req, res, next) {
  69. let blogID = req.params.postID;
  70. for (i = 0; i < blogInhalt.length; i++) {
  71. if (blogInhalt[i].id == blogID) {
  72. console.log(blogInhalt[i].id, blogInhalt[i].title);
  73. res.send({ ID: blogInhalt[i].id, Titel: blogInhalt[i].title });
  74. }
  75. }
  76. res.send({ "text: ": "Kein entsprechender Eintrag gefunden!" })
  77. console.log('Kein entsprechender Eintrag gefunden.');
  78. });
  79. module.exports = router;