Router.route()
router.route()
IT RETURNS AN INSTANCE OF A SINGLE ROUTE WHICH YOU CAN THEN USE TO HANDLE HTTP VERBS WITH OPTIONAL MIDDLEWARE.
IT'S A FUNCTIONALITY BY WHICH WE CAN COMBINE THE VERBS OF A COMMON PATH.
WE RE-FORMAT PATHS .
IN ROUTES
LISTING.JS
const express = require("express");
const router = express.Router();
const wrapAsync = require("../utils/wrapAsync.js");
const ExpressError = require("../utils/ExpressError.js");
const { listingSchema } = require("../schema.js");
const Listing = require("../models/listing.js");
const { isLoggedIn, isOwner, ValidateListing } = require("../middleware.js");
const listingController = require("../controller/listing.js");
router
.route("/")
.get(wrapAsync(listingController.index))
.post(
isLoggedIn,
ValidateListing,
wrapAsync(listingController.postNewListing)
);
// NEW ROUTE
router.get("/new", isLoggedIn, listingController.getNewListing);
router
.route("/:id")
// SHOW ROUTE
.get(wrapAsync(listingController.showListing))
// UPDATE ROUTE
.put(
isLoggedIn,
isOwner,
ValidateListing,
wrapAsync(listingController.updateListing)
)
// DELETE ROUTE
.delete(isLoggedIn, isOwner, wrapAsync(listingController.deleteListing));
// EDIT ROUTE
router.get(
"/:id/edit",
isLoggedIn,
isOwner,
wrapAsync(listingController.editListing)
);
module.exports = router;
USER.JS
const express = require("express");
const router = express.Router();
const wrapAsync = require("../utils/wrapAsync.js");
const User = require("../models/user.js");
const passport = require("passport");
const { func } = require("joi");
const { saveRedirectedUrl } = require("../middleware.js");
const userController = require("../controller/user.js");
router
.route("/signup")
.get(userController.renderSignup)
.post(wrapAsync(userController.signup));
router
.route("/login")
.get(userController.loginForm)
.post(
saveRedirectedUrl,
passport.authenticate("local", {
failureRedirect: "/login",
failureFlash: true,
}),
userController.login
);
router.get("/logout", userController.logout);
module.exports = router;
Comments
Post a Comment