Registry / database / express-idempotency-mongo-adapter

express-idempotency-mongo-adapter

JSON →
library1.0.5jsnpmunverified

A MongoDB data adapter for the express-idempotency middleware, v1.0.5. Allows storing idempotency keys and responses in MongoDB with TTL index support. Built by the City of Montreal, ships TypeScript types. Low release cadence; key differentiator: provides a dedicated MongoDB storage backend for express-idempotency, supporting delegated database connections or direct URI configuration.

npm install express-idempotency-mongo-adapter
INSTALL
IMPORT
SIG · EXPRESS-IDEMPOTENC
E
express-idempotency-mongo-adapter
databasejavascriptv1.0.5
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

newAdapter
const { newAdapter } = require('express-idempotency-mongo-adapter');
const MongoAdapter = require('express-idempotency-mongo-adapter').default;
CommonJS default export is an object with newAdapter method. No default export.
MongoAdapter
import { MongoAdapter } from 'express-idempotency-mongo-adapter';
import MongoAdapter from 'express-idempotency-mongo-adapter';
TypeScript/ESM: Named import, not default. The package is CJS but has type definitions.
AdapterOptions
import type { AdapterOptions } from 'express-idempotency-mongo-adapter';
Type-only import for configuration options.

Initialize express-idempotency with MongoDB adapter using URI configuration.

const express = require('express'); const idempotency = require('express-idempotency'); const { newAdapter } = require('express-idempotency-mongo-adapter'); const app = express(); app.use(express.json()); const adapter = newAdapter({ config: { uri: process.env.MONGO_URI ?? 'mongodb://localhost:27017', settings: { useNewUrlParser: true, useUnifiedTopology: true } } }); app.use(idempotency.idempotency({ dataAdapter: adapter })); app.post('/api/orders', (req, res) => { res.json({ status: 'ok' }); }); app.listen(3000);
Debug
Known issues
gotchaMongoDB connection settings must include useNewUrlParser and useUnifiedTopology for driver <4.0.
fix
Add settings: { useNewUrlParser: true, useUnifiedTopology: true } to adapter config.
affects: <1.0
gotchaThe adapter creates a collection named 'idempotency' by default; ensure no naming conflict.
fix
No fix provided – rename collection by contributing to the package or using delegation.
affects: >=1.0
deprecateduseDelegation option may be replaced in future versions; prefer direct config.
fix
Use config.uri directly unless you need custom connection management.
affects: >=1.0
Errors
Common errors & fixes
Cannot find module 'express-idempotency'
Peer dependency express-idempotency not installed.
fix
npm install express-idempotency
MongoAdapter.newAdapter is not a function
Using incorrect import pattern (e.g., requiring default export instead of destructuring).
fix
const { newAdapter } = require('express-idempotency-mongo-adapter');
TypeError: Cannot read property 'idempotency' of undefined
express-idempotency not installed or incorrectly required.
fix
Ensure express-idempotency is installed and required correctly.
MongoTimeoutError: Server selection timed out after 30000 ms
MongoDB URI incorrect or server unreachable.
fix
Check MONGO_URI environment variable or ensure MongoDB is running on the specified host.
Upgrade
Version history
1.0.5latest on npm
Audit
Dependencies
express-idempotencyrequiredCore middleware that this adapter works with
mongodbrequiredMongoDB driver for database operations
Agent activity
5 hits · last 30 days
node
4
Resources
express-idempotency-mongo-adapter — npm install express-idempotency-mongo-adapter · libregistry