express-msgpack v5.1.2
Express Msgpack
Express and MessagePack, together at last. Uses @msgpack/msgpack by default.
Functionality
Provides transparent middleware that can be used to support clients requesting
Accept: application/msgpack from endpoints using res.json or sending
Content-Type: application/msgpack to any endpoint. You can continue to use
req.body and res.json and expressMsgpack will handle the conversion in
the background using @msgpack/msgpack (or any compatible library of your
choice).
Installation
$ npm install --save express-msgpack
// or
$ yarn add express-msgpackIf you intend to use an alternative to @msgpack/msgpack (see Configuration)
you can add the --no-optional flag; it's an optional dependency.
Usage
import msgpack from "express-msgpack";
// ...
app.use(msgpack());CommonJS
const msgpack = require("express-msgpack").default;
// ...
app.use(msgpack());Configuration
To configure, pass options when you configure the middleware. Currently supported options are:
| Parameter | Description | Default |
|---|---|---|
decoder | a function converting from MessagePack to JavaScript | @msgpack/msgpack#decode |
encoder | a function converting from JavaScript to MessagePack | @msgpack/msgpack#encode (with a wrapper to convert the result to a Buffer) |
mimeType | the MIME type to detect and set for MessagePack payloads | "application/msgpack" |
limit | The byte limit of the body. This is the number of bytes or any string format supported by bytes | "100kb" |
For example, to switch to the node-gyp C++ based msgpack library:
import msgpack from "express-msgpack";
import { pack, unpack } from "msgpack";
// ...
app.use(msgpack({ decoder: unpack, encoder: pack }));Development
The project has code linting and testing, using the following commands:
npm run e2e: run the smoke/E2E testsnpm run lint: run the ESLint checksnpm run ship: lint and run unit, integration and E2E testsnpm test: run the Jest unit and integration testsnpm test:watch: run the tests in watch mode
The tests are in the __tests__/ directory and are run using Jest. They're
split into two files:
unit.test.ts- mockist unit tests, to check specific internal detailsintegration.test.ts- integration tests using SuperTest with a simple Express app using the middleware
There is also a smoke/ directory containing E2E/smoke tests for a deployed
version of the package, used by bin/smoke.sh. If the --local argument is
supplied to the script the local version is packaged and tested , otherwise
the specified $TAG version is installed from the registry and tested.
1 year ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago