Newer
Older
express-blog / src / app.js
@Jason Jason on 1 Jun 944 bytes new file: example.env
// src/app.js
const express = require("express");
const exphbs = require("express-handlebars");
require("dotenv").config();
const setupMiddleware = require("./middleware");
const { registerHelpers } = require("./utils/hbsHelpers");
const app = express();
const path = require("path");

const hbs = exphbs.create({
  layoutsDir: "src/views/layouts",
  partialsDir: "src/views/partials",
  defaultLayout: "main",
  helpers: {
    section: function (name, options) {
      if (!this._sections) this._sections = {};
      this._sections[name] = options.fn(this);
      return null;
    },
  },
  runtimeOptions: {
    allowProtoPropertiesByDefault: true,
    allowProtoMethodsByDefault: true,
  },
});

registerHelpers(hbs);

app.engine("handlebars", hbs.engine);
app.set("view engine", "handlebars");
app.set("views", "./src/views");

setupMiddleware(app);

app.listen(3400, () => {
  console.log("Server listening on http://localhost:3400");
});