express-html-validator

Automatic HTML validation middleware for Express applications.

Usage no npm install needed!

<script type="module">
  import expressHtmlValidator from 'https://cdn.skypack.dev/express-html-validator';
</script>

README

express-html-validator

Build Status codecov npm

A middleware for the Express framework that automatically validates the HTML on all your Express routes, powered by html-validate. This module was built and is maintained by the Roosevelt web framework team, but it can be used independently of Roosevelt as well.

Usage

First declare express-html-validator as a dependency in your app.

Then require the package into your application and call its constructor, passing along your Express app:

const express = require('express')
const expressValidator = require('express-html-validator')
const app = express()
const config = {}

// Generally this would be used in development mode
if (process.env.NODE_ENV === 'development') {
  expressValidator(app, config)
}

// expressValidator should be called before defining routes
app.get('/', (req, res) => {
  // This html response will be validated in real time as it's sent
  res.sendFile(path.join(publicDir, 'index.html'))
})

Configuration

Optionally you can pass this module a set of configs:

  • exceptions: A set of params that can be used to prevent validation in certain scenarios:

    • header [String]: A custom header that when set will disable the validator on a per request basis.

      • Default: 'Partial'.
    • modelValue [String]: An entry in your data model passed along with a res.render that when set will disable validation on the rendered HTML.

      • Default: '_disableValidator'
  • validatorConfig [Object]: html-validate configuration that determines what errors the validator looks for.

    • Note: The full list of available validator rules can be found here.

    • Note: This configuration can also be set by a .htmlValidate.json file placed in your app root directory.

    • Default:

      {
        "extends": ["html-validate:standard"]
      }