I am a student and am stuck here. I tried looking for information but could not find any. I appreciate any help. Not sure if this is all that is need, but if you need to see more, please ask. Thanks for all the help/guidance
var express = require('express');
const {isLoggedIn} = require('../middleware/protectors');
const {getRecentPosts} = require('../middleware/posts')
var router = express.Router();
/* GET home page. */
router.get('/',getRecentPosts , function(req, res, next) {
res.render('index', {css:["style.css"]});
});
router.get("/login", function(req, res){
res.render('login', {css:["style.css"]});
});
//METHOD : GET
//localhost:3000/register
router.get("/register", function(req, res){
res.render('registration', {css:["style.css"]});
});
router.get("/postimage",isLoggedIn, function(req, res){
res.render('postimage', {css:["style.css"]});
});
router.get("/posts/:id(\\d+)", function(req, res){
res.render('viewpost', {js:["viewpost.js"]});
});
module.exports = router;
const createError = require("http-errors");
const express = require("express");
const favicon = require('serve-favicon');
const path = require("path");
const cookieParser = require("cookie-parser");
const logger = require("morgan");
const handlebars = require("express-handlebars");
const session = require('express-session');
const MySQLStore = require('express-mysql-session')(session);
const flash = require('express-flash');
const indexRouter = require("./routes/index");
const usersRouter = require("./routes/users");
const postsRouter = require("./routes/posts");
const app = express();
app.engine(
"hbs",
handlebars({
layoutsDir: path.join(__dirname, "views/layouts"), //where to look for layouts
partialsDir: path.join(__dirname, "views/partials"), // where to look for partials
extname: ".hbs", //expected file extension for handlebars files
defaultLayout: "layout", //default layout for app, general template for all pages in app
helpers: {
nonEmptyObject: function(obj){
return !(obj && obj.constructo === Object && Object.keys(obj).length == 0);
},
formatDate: function(dateString){
return new Date(dateString).toLocaleString();
}
}, //adding new helpers to handlebars for extra functionality
})
);
// view engine setup
app.set("views", path.join(__dirname, "views"));
app.set("view engine", "hbs");
var sessionStore = new MySQLStore({}, require('./conf/database'));
app.use(
session({
key: 'csid',
secret: 'csc317 secret',
store: sessionStore,
resave: false,
saveUninitialized: false,
})
);
app.use(logger("dev"));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser('csc317 secret'));
app.use(flash());
app.use(favicon(__dirname + '/public/favicon.ico'));
// anything that that is in this folder, look at it
app.use("/public", express.static(path.join(__dirname, "public")));
app.use(function(req,res,next){
console.log(req.session);
if(req.session.username){
res.locals.isLoggedIn = true;
res.locals.username = req.session.username;
}
next();
})
app.use("/", indexRouter); // route middleware from ./routes/index.js
app.use("/users", usersRouter); // route middleware from ./routes/users.js
app.use("/posts", postsRouter);
/**
* Catch all route, if we get to here then the
* resource requested could not be found.
*/
app.use((req,res,next) => {
next(createError(404, `The route ${req.method} : ${req.url} does not exist.`));
})
/**
* Error Handler, used to render the error html file
* with relevant error information.
*/
app.use(function (err, req, res, next) {
res.locals.message = err.message;
res.locals.error = err;
console.log(err);
// render the error page
res.status(err.status || 500);
res.render("error");
});
module.exports = app;
I tried googling but could not find/understand what I found.
I am trying to view the Post that suppose to be in my viewpost.hbs file
Your route does point to
/posts/:id
and not/viewpost