view-locals
v1.0.2
Published
Sets up the default locals to use with the render function of express
Downloads
4
Maintainers
Readme
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"
]
}
}