From 3440e222c07f32348bead0a818c845d767f2f0ff Mon Sep 17 00:00:00 2001 From: dipexplorer Date: Tue, 15 Oct 2024 19:59:13 +0530 Subject: [PATCH] Add listing Bug Fix --- app.js | 14 ++++++++++-- controllers/listing.js | 30 ++++++++++++++++++++------ package-lock.json | 48 ++++++++++++++++++++++-------------------- views/new.ejs | 2 +- 4 files changed, 61 insertions(+), 33 deletions(-) diff --git a/app.js b/app.js index 647c3d5..88e4ce0 100644 --- a/app.js +++ b/app.js @@ -170,10 +170,20 @@ app.route("/login") res.redirect("/listing"); }) -}) +}); + +//define listing conroller +//BUG FIX +const listingController = require('./controllers/listing.js'); + +// Create new listing form route +// app.get("/new",isLoggedIn, asyncwrap(newpost)); +app.get("/listing/new", isLoggedIn, asyncwrap(listingController.newpost)); //create new listing -app.get("/new",isLoggedIn, asyncwrap(newpost)); +// Create new listing form route +app.get("/listing/new", isLoggedIn, asyncwrap(listingController.newpost)); + //index route app.get("/listing",asyncwrap(index)); diff --git a/controllers/listing.js b/controllers/listing.js index 87769c5..b849571 100644 --- a/controllers/listing.js +++ b/controllers/listing.js @@ -29,10 +29,18 @@ module.exports.index = async (req, res) => { } }; +//bug fixes module.exports.newpost = async (req, res) => { - console.log(req.user); - res.render("new.ejs"); -}; + try { + console.log("Rendering new listing form..."); + res.render("new.ejs"); + } catch (err) { + console.error("Error loading new listing form:", err); + req.flash("error", "Error loading form."); + return res.redirect("/listing"); + } +}; + module.exports.search = async (req, res) => { const { query } = req.body; @@ -118,9 +126,18 @@ module.exports.editpost = async (req, res) => { } }; +const mongoose = require('mongoose'); + module.exports.showPost = async (req, res) => { try { const { id } = req.params; + + // Validate if 'id' is a valid ObjectId + if (!mongoose.Types.ObjectId.isValid(id)) { + req.flash('error', 'Invalid listing ID'); + return res.redirect('/listing'); + } + const list = await listing.findById(id) .populate({ path: 'reviews', @@ -130,21 +147,20 @@ module.exports.showPost = async (req, res) => { }) .populate('owner'); - // console.log(list); - if (!list) { req.flash('error', ERROR_LISTING_NOT_FOUND); return res.redirect('/listing'); } - res.render('show.ejs', { list }); } catch (err) { - console.error("Error fetching listing:", err); + console.error("Error fetching listing:", err.message); + console.error("Stack trace:", err.stack); req.flash("error", ERROR_LOAD_LISTING_DETAILS); return res.redirect("/listing"); } }; + module.exports.saveEditpost = async (req, res) => { const { id } = req.params; console.log("saveditpost"); diff --git a/package-lock.json b/package-lock.json index 34a45db..8d1531b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -694,34 +694,27 @@ } }, "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/cookie-parser": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", - "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.7.tgz", + "integrity": "sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==", "license": "MIT", "dependencies": { - "cookie": "0.4.1", + "cookie": "0.7.2", "cookie-signature": "1.0.6" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/cookie-parser/node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", @@ -988,9 +981,9 @@ "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" }, "node_modules/express": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", - "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "license": "MIT", "dependencies": { "accepts": "~1.3.8", @@ -998,7 +991,7 @@ "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -1030,12 +1023,12 @@ } }, "node_modules/express-session": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.18.0.tgz", - "integrity": "sha512-m93QLWr0ju+rOwApSsyso838LQwgfs44QtOP/WBiwtAgPIo/SAh1a5c6nn2BR6mFNZehTpqKDESzP+fRHVbxwQ==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.18.1.tgz", + "integrity": "sha512-a5mtTqEaZvBCL9A9aqkrtfz+3SMDhOVUnjafjo+s7A9Txkq+SVX2DLvSp1Zrv4uCXa3lMSK3viWnh9Gg07PBUA==", "license": "MIT", "dependencies": { - "cookie": "0.6.0", + "cookie": "0.7.2", "cookie-signature": "1.0.7", "debug": "2.6.9", "depd": "~2.0.0", @@ -1053,6 +1046,15 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==" }, + "node_modules/express/node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/filelist": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", diff --git a/views/new.ejs b/views/new.ejs index 242e8e5..73eaf1f 100644 --- a/views/new.ejs +++ b/views/new.ejs @@ -42,7 +42,7 @@

- +