javascript - Hur kontrollerar man fel i express listen-callback?


Jag har följande kod för att kontrollera om det uppstod ett fel vid start av Express:

express()
    .listen(port, (err: Error) => {
        if (err) {
            console.error(err);
            return;
        }
        console.log(`Express started`);
    });

Men nyligen får jag detta fel i Typescript-kompilatorn:

TS2345: Argument av typen '(err: Error) => void' kan inte tilldelas parametern av typen '(() => void) | undefined'.

Det verkar som om återanropsfunktionen för listen() inte tar emot någon felparameter. Om detta är fallet, hur bör jag kontrollera och hantera fel när jag startar Express?

Svar #1

Serverobjektet är en Node.js EventEmitter. Som med alla EventEmitters passeras de flesta fel till 'error'-händelsen. Så du kan fånga dem på detta sätt:

express().listen(port, () => {
   console.log('Listening on port: ', port);
}).on('error', (e) => {
   console.log('Error happened: ', e.message)
});

Jag hoppas att detta kommer att vara användbart.

Relaterade artiklar