Home > front end >  Set http server requestTimeout in TypeScript
Set http server requestTimeout in TypeScript

Time:10-11

Recently, we had to upgrade our Node version to 18.4 because of reasons. And one of the new features of Node 18 is that the http server now has a default 5 minute timeout for requests which breaks certain slow endpoints in our app. We need to increase that.

Our project is in TypeScript and having code like:

import * as express from 'express';
import * as http from 'http';

this.app = express();
//numerous configurations
const server = http.createServer(this.app);

Now here would be the part where we increase this timeout. However, none of the following work

server.requestTimeout = 9000000; // some large number

TSError: ⨯ Unable to compile TypeScript: server/init.ts:232:12 - error TS2339: Property 'requestTimeout' does not exist on type 'Server'.

server.setTimeout(9000000); //does not actually increase the request timeout

However, if launch a debugger and manually input server.requestTimeout = 9000000 in the console, that seems to work perfectly.

So how do I go about changing this property?

CodePudding user response:

Update the corresponding @type/ package. If the package is up to date, it's maybe not yet patched. You can create a .d.ts to augment the type declaration with the missing property. That should do the trick until they patch it.

  • Related