Treblle with Express
To integrate Treblle with Express, we provide an official unified SDK for JavaScript frameworks - treblle-node.
Requirements
Section titled “Requirements”- Node.js:
>=14.0.0 - Express:
4.xor5.x
Installation
Section titled “Installation”npm install treblle@^2.0.0Don’t forget to load the required modules in your app.js:
const express = require("express");const { useTreblle } = require("treblle");Setting up credentials
Section titled “Setting up credentials”Create a free account on treblle.com to get your credentials:
sdkToken(SDK Token)apiKey(API Key)
Add these to your .env file:
TREBLLE_SDK_TOKEN=your_sdk_tokenTREBLLE_API_KEY=your_api_keyBasic Setup
Section titled “Basic Setup”Initialize Treblle in your app.js file:
const express = require("express");const { useTreblle } = require("treblle");
const app = express();app.use(express.json());
// Treblle must be registered after body parsing middlewareuseTreblle(app, { sdkToken: process.env.TREBLLE_SDK_TOKEN, apiKey: process.env.TREBLLE_API_KEY,});
app.get("/api/users", (req, res) => { res.json({ users: [] });});
app.listen(3000);That’s it! Your API requests and responses are now being sent to your Treblle project. You’ll get features like auto-documentation, real-time request/response monitoring, and error tracking.
Middleware Ordering
Section titled “Middleware Ordering”Ensure Treblle is registered after body parsing middleware:
app.use(express.json()); // First: body parsingapp.use(express.urlencoded({ extended: true }));
useTreblle(app, { /* config */ }); // Then: Treblle
// Finally: your routesapp.get('/api/users', handler);Configuration Options
Section titled “Configuration Options”You can pass additional configuration options:
useTreblle(app, { sdkToken: process.env.TREBLLE_SDK_TOKEN, apiKey: process.env.TREBLLE_API_KEY, additionalFieldsToMask: ["customSecret", "internalId"], // Optional blocklistPaths: ["admin", "health"], // Optional: Skip logging certain paths ignoreDefaultBlockedPaths: false, // Optional: Disable default blocked paths debug: true, // Optional: Show Treblle errors in console});Available options:
Section titled “Available options:”sdkToken(required): Your Treblle SDK tokenapiKey(required): Your Treblle API keyadditionalFieldsToMask(optional): Array of field names to mask in addition to default fieldsblocklistPaths(optional): Array of path prefixes or RegExp to exclude from loggingignoreDefaultBlockedPaths(optional): Boolean to disable default blocked paths (default: false)debug(optional): Boolean to show Treblle-related errors in console (default: false)
Production-only Setup
Section titled “Production-only Setup”Run Treblle only in production:
const app = express();app.use(express.json());
if (process.env.NODE_ENV === "production") { useTreblle(app, { sdkToken: process.env.TREBLLE_SDK_TOKEN, apiKey: process.env.TREBLLE_API_KEY, });}Masking Sensitive Data
Section titled “Masking Sensitive Data”The following fields are automatically masked:
password,pwd,secret,password_confirmation,passwordConfirmationcc,card_number,cardNumber,ccvssncredit_score,creditScore
Add custom fields to mask:
useTreblle(app, { sdkToken: process.env.TREBLLE_SDK_TOKEN, apiKey: process.env.TREBLLE_API_KEY, additionalFieldsToMask: ["customSecret", "licensee_key"],});Debugging
Section titled “Debugging”Enable debug mode to see Treblle errors in your console:
useTreblle(app, { sdkToken: process.env.TREBLLE_SDK_TOKEN, apiKey: process.env.TREBLLE_API_KEY, debug: true,});