view-locals

1.0.2 • Public • Published

view-locals

An express middleware which sets default local variables to pass into the view engine for use.

Feel free to comment/tear apart my code and let me know how to improve it.

Example Use

First you must have a .locals file in the root of your project (where package.json) which contains all the defaults you wish to use.

const express = require("express");
const app = express();
const viewLocals = require("view-locals");
 
... Other code here ...
 
app.use(viewLocals());
 
app.get("/", (req, res, next) => {
  res.render("index");
});
 
... Other code here ...
 
app.listen(1337);

Now in your index.jade or index.ejs file you will have access to a bunch of default local variables (based on your .locals file) such as:

  • Title
  • Description
  • Keywords
  • Stylesheets array
  • Scripts array
  • ...

Sending arguments

A filepath and/or options object can also be sent into the view-locals middleware:

  • Path and options:
app.use(viewLocals("path/to/config.json", {encoding: "utf-8", reference: "+"});
  • Just path:
app.use(viewLocals("path/to/config.anything"));
  • Just options:
app.use(viewLocals({encoding: "utf-8", reference: "+"});

Options

There are a few options that can be sent in to the viewLocals module:

  • encoding: The file encoding to use, defaults to "utf-8".
  • filepath: The path to the configuration json file, defaults to the file ".locals" in the root of the project.
  • reference: The reference symbol to use when referencing other properties, defaults to "~". The default value for "ogTitle" below will be the value of "title".
{
  "title": "Default title",
  "ogTitle": "~title"
}

.locals file

The json formatted default locals that will be applied.

{
  //The defaults to use.
  "defaults": {
    //Global meta information.
    "title": "View Locals",
    "language": "en",
    "charset": "utf-8",
    "viewport": "width=device-width,initial-scale=1.0",
    "description": "An example .locals file to use with your express project.",
    "ogTitle": "~title",
    "keywords": [
      "Example",
      "keywords",
      "express",
      "locals"
    ],
    "robots": [
      "noindex",
      "nofollow"
    ],
    "alternateUrls": {
      "fr": "http://www.alternative-french-url.com",
      "br": "http://www.alternative-brazilian-url.com"
    },
 
    //Static files.
    "stylesheets": [
      "stylesheet1.css"
    ],
    "scripts": [
      "/path/to/js/file.js"
    ]
  }
}

Package Sidebar

Install

npm i view-locals

Weekly Downloads

0

Version

1.0.2

License

MIT

Last publish

Collaborators

  • lindsor