Security News
38% of CISOs Fear They’re Not Moving Fast Enough on AI
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
express-timeout-handler
Advanced tools
Express timeout middleware that ensures a response is returned to the client on a timeout event.
Express timeout middleware that ensures a response is returned to the client on a timeout event.
Add a global timeout to all your routes in express and add individual timeouts to specific routes. If a timeout happens the onTimeout
function will be called. The onTimeout
function MUST terminate the request with a response. When a timeout happens, this module will set a globalTimeout
property on the response object to true and disable all methods on the response object which might try and send something after the timeout happened.
Note on streams: whenever a stream has started streaming to the response object, the onTimeout
function will not be triggered. Or in other words: if a timeout happens after we start streaming, the stream will not be interrupted.
npm install --save express-timeout-handler
var timeout = require('express-timeout-handler');
var express = require('express');
var app = express();
var options = {
// Optional. This will be the default timeout for all endpoints.
// If omitted there is no default timeout on endpoints
timeout: 3000,
// Optional. This function will be called on a timeout and it MUST
// terminate the request.
// If omitted the module will end the request with a default 503 error.
onTimeout: function(req, res) {
res.status(503).send('Service unavailable. Please retry.');
},
// Optional. Define a function to be called if an attempt to send a response
// happens after the timeout where:
// - method: is the method that was called on the response object
// - args: are the arguments passed to the method
// - requestTime: is the duration of the request
// timeout happened
onDelayedResponse: function(req, method, args, requestTime) {
console.log(`Attempted to call ${method} after timeout`);
},
// Optional. Provide a list of which methods should be disabled on the
// response object when a timeout happens and an error has been sent. If
// omitted, a default list of all methods that tries to send a response
// will be disable on the response object
disable: ['write', 'setHeaders', 'send', 'json', 'end'];
};
app.use(timeout.handler(options));
app.get('/greet', //The default timeout is in effect here
function (req, res) {
res.send('Hello world!');
}
);
app.get('/leave',
// This is a specific endpoint timeout which overrides the default timeout
timeout.set(4000),
function (req, res) {
res.send('Goodbye!');
}
);
app.listen(3000, function () {
console.log('Server listening on port 3000');
});
FAQs
Express timeout middleware that ensures a response is returned to the client on a timeout event.
We found that express-timeout-handler demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers 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.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.
Security News
Company News
Socket is joining TC54 to help develop standards for software supply chain security, contributing to the evolution of SBOMs, CycloneDX, and Package URL specifications.