
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
response-catcher
Advanced tools
Easy async error handling in Express
npm install --save response-catcher
response-catcher
is an extremely flexible .catch()
error handler for promise-based express request flows.
It should be used where you would have multiple .then()
operations in a request and need to be able to throw and handle many kinds of errors.
By default it attaches itself to res.error()
(though this can be configured).
const express = require("express");
const app = express();
const responseCatcher = require("response-catcher");
app.use(responseCatcher());
app.get("/", (req, res) => {
findUser()
.then(checkUser)
.then(andThenThisThing)
.catch(res.error());
async function findUser() {
let user = await db.users.find(req.body.id);
if (!user) throw 404;
return user;
}
async function checkUser(user) {
if (!user.isAuthenticated) throw [401, "User is not authenticated"];
else if (user.alreadyExists) throw ["User already exists", 409];
else if (user.username.length > 8) throw "Username is too long";
else if (serverErrorSomewhere) throw { status: 500, body: "Sorry, we had an error somewhere!" };
}
async function andThenThisThing() {
// ...
}
});
On instantiation of the middleware function, you can set the following properties (with the listed values being the defaults):
{
name: "error", // The name of the function to use: "res.error()"
status: 400, // The default response status to use
logger: console.log, // The logging function to use for errors
logging: false // Whether or not to log errors
}
To use a custom logger that isn't console.log
, supply it to the logger
key. This still won't enable logging, which to do set logging: true
.
You can supply as many arguments as you like. Any string you provide will interpreted as the name
, any number you use will be interpreted as the status
, and any object you use will have the named properties.
const responseCatcher = require("response-catcher");
app.use(responseCatcher()); // Use the default values
app.use(responseCatcher(405)); // Change the default status to 405
app.use(responseCatcher({ logger: console.log })); // Enable logging
app.use(responseCatcher("handleError", { status: 500 })); // Change both the default function name and the status
Coming soon...
Coming soon...
FAQs
Easy async error handling in Express
The npm package response-catcher receives a total of 5 weekly downloads. As such, response-catcher popularity was classified as not popular.
We found that response-catcher demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.