Security News
Input Validation Vulnerabilities Dominate MITRE's 2024 CWE Top 25 List
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Meta
<title>
and<meta name="description">
middleware for Koa and Lad
npm:
npm install koa-meta
Use middleware:
const path = require('path');
const views = require('@ladjs/koa-views');
const Meta = require('koa-meta');
/// ...
// set template rendering engine (see @ladjs/web for inspiration)
app.use(views(path.join(__dirname, 'views')));
const meta = new Meta({
'/': [ 'Home', 'Our home page description' ],
'/contact', [ 'Contact', 'Contact us with questions' ]
});
// note: you can also pass a second argument of a custom `logger`
// the default logger is `console` and must have a `.error` method
// `const meta = new Meta({}, console);`
app.use(meta.middleware);
app.use((ctx, next) => {
// since the previous middleware was defined before this
// the `ctx.state` object has been populated with metadata
// when the render call occurs (it will not override any existing set values)
// for a request with `ctx.path` of `/` it will output:
// { title: 'Home', description: 'Our home page description' }
ctx.render('home');
});
Therefore in your views you can render the meta data easily:
doctype html
html
head
title= meta.title
meta(name="description", content=meta.description)
Programmatically get a meta object/translated version of
title
anddescription
:
const Meta = require('koa-meta');
const meta = new Meta({
'/': [ 'Home', 'Our home page description' ],
'/posts': [ 'Posts', 'Posts by our team' ]
});
console.log(meta.getByPath('/posts/123456'));
// `{ title: 'Posts', description: 'Posts by our team' }`
This package supports translation out of the box.
It checks for a function set on ctx.request.t
and utilizes that function to translate based off the request's locale.
This package supports parent meta data lookup for children of paths.
This means if you define in your configuration a path of /posts
and a request is made to /posts/123456
(with this path not being defined in your configuration), then it will use /posts
definition for /posts/123456
.
By default this package will throw an error if a child path was found that does not have a parent defined.
This is extremely useful for retaining quality control with your configuration.
However this is configurable based off the third argument passed to new Meta()
, e.g. new Meta(config, logger, levelForMissing
.
The value of levelForMissing
defaults to error
for when process.env.NODE_ENV
is equal to development
, otherwise it defaults to debug
.
This is configurable, therefore you can simply pass new Meta(config, logger, 'warn')
if you want warn
to be the log level for missing meta configurations.
Name | Website |
---|---|
Nick Baugh | http://niftylettuce.com/ |
FAQs
SEO <title> and <meta name="description"> middleware for Koa and Lad
We found that koa-meta demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.