0.5.1 • Published 7 years ago

exprssi v0.5.1

Weekly downloads
4
License
MIT
Repository
github
Last release
7 years ago

ExprSSI

(SSI) Server Side Includes middleware for Express.

After some issues with virtual paths I've decided to create my own SSI middleware for Express.

Install

$ npm i exprssi --save

Configuration

In this section I'll explain 3 possible ways to implement this middleware. Most of it is basically the same. The difference is in the Express setup.

Working on the root

In this case we'll be working on the root of our project, nothing fancy.

// Load NMP Packages
const express = require( 'express' ),
      exprSSI = require( 'exprssi' );

// Create the Express instance
const app = express();

// Bind Exprssi middleware
app.use( exprSSI({
  baseDir: 'path/to/your/ssi/files'
}));

Working with a static directory

Here we're telling Express that we'll be serving our file from a static directory. In this case we'll call the static directory public.

// Load NMP Packages
const express = require( 'express' ),
      exprSSI = require( 'exprssi' );

// Create the Express instance
const app = express();

// Setup static directory
app.use( express.static( './public' ) );

// Bind Exprssi middleware
app.use( exprSSI({
  baseDir: 'path/to/your/ssi/files'
}));

Working with virtual paths

This is where I encouterd my problem with existing SSI middlewares. So let's quickly fix this. We'll rout calls to exprssi/api to the directory public.

// Load NMP Packages
const express = require( 'express' ),
      exprSSI = require( 'exprssi' );

// Create the Express instance
const app = express();

// Setup static directory
app.use( '/express/api', express.static( './public' ) );

// Bind Exprssi middleware
app.use( exprSSI({
  baseDir: 'path/to/your/ssi/files',
  virtual: '/expressi/api'
}));

Note: It might be interesting to store the path /express/api in a variable.

Options

OptionDescriptionDefault
baseDirPath to your shtml files'.'
extThe extension you wish to target'.shtml'
payloadContent you would like to send when compiling''
virtualThe virtual path you're usingfalse

Changelog

  • V0.5.1:
    • Remove URL parameters from request
    • Remove anchor links from request