New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

express-msgpack

Package Overview
Dependencies
Maintainers
1
Versions
34
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

express-msgpack

Transparent MessagePack middleware for Express

latest
Source
npmnpm
Version
6.0.0
Version published
Maintainers
1
Created
Source

Express Msgpack

License Build Status NPM Version

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-msgpack

If 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:

ParameterDescriptionDefault
allowUnacceptableResponsea boolean indicating whether the response should still be sent if the client doesn't set a compatible Accept type (rather than a 406 Not Acceptable response)false
decodera function converting from MessagePack to JavaScript@msgpack/msgpack#decode
encodera function converting from JavaScript to MessagePack@msgpack/msgpack#encode (with a wrapper to convert the result to a Buffer)
mimeTypethe MIME type to detect and set for MessagePack payloads"application/msgpack"
limitThe 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 tests
  • npm run lint: run the ESLint checks
  • npm run ship: lint and run unit, integration and E2E tests
  • npm test: run the Jest unit and integration tests
  • npm 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 details
  • integration.test.ts - integration tests using SuperTest with a simple Express app using the middleware

There is also a smoke.test.js file containing E2E/smoke tests for a deployed version of the package, used by bin/smoke.js. 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.

Keywords

express

FAQs

Package last updated on 22 Nov 2025

Did you know?

Socket

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.

Install

Related posts