
Product
Introducing Pull Request Stories to Help Security Teams Track Supply Chain Risks
Socket’s new Pull Request Stories give security teams clear visibility into dependency risks and outcomes across scanned pull requests.
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.
The npm package express-timeout-handler receives a total of 17,740 weekly downloads. As such, express-timeout-handler popularity was classified as popular.
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.
Product
Socket’s new Pull Request Stories give security teams clear visibility into dependency risks and outcomes across scanned pull requests.
Research
/Security News
npm author Qix’s account was compromised, with malicious versions of popular packages like chalk-template, color-convert, and strip-ansi published.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.