UNPKG

mustbe

Version:

Authorization plumbing for Node+Express apps

64 lines (52 loc) 1.57 kB
var express = require("express"); var path = require("path"); var favicon = require("serve-favicon"); var logger = require("morgan"); var cookieParser = require("cookie-parser"); var bodyParser = require("body-parser"); var app = express(); // view engine setup app.set("views", path.join(__dirname, "views")); app.set("view engine", "jade"); // uncomment after placing your favicon in /public //app.use(favicon(__dirname + "/public/favicon.ico")); app.use(logger("dev")); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, "public"))); // set up mustbe config var mustBe = require("../mustbe"); var mustBeConfig = require("./mustBeConfig"); mustBe.configure(mustBeConfig); // now add the routes var routes = require("./routes"); app.use("/", routes); // catch 404 and forward to error handler app.use(function(req, res, next) { var err = new Error("Not Found"); err.status = 404; next(err); }); // error handlers // development error handler // will print stacktrace if (app.get("env") === "development") { app.use(function(err, req, res, next) { res.status(err.status || 500); res.render("error", { message: err.message, error: err }); }); } // production error handler // no stacktraces leaked to user app.use(function(err, req, res, next) { res.status(err.status || 500); res.render("error", { message: err.message, error: {} }); }); module.exports = app;