如何在快速侦听回调中检查错误?

时间:2019-06-05 17:45:36

标签: javascript node.js typescript express error-handling

我有以下代码来检查Express的启动是否出错:

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

但是,最近,我在Typescript编译器中遇到此错误:

  

TS2345:类型'(err:Error)=> void'的参数不可分配给   '(()=> void)类型的参数|未定义”。

似乎listen()的回调函数没有接受错误参数。在这种情况下,启动Express时应该如何检查和处理错误?

1 个答案:

答案 0 :(得分:1)

Server对象是Node.js EventEmitter。与所有EventEmitter一样,大多数错误都传递给'error'事件。因此,您可以像这样捕获:

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

我希望这会有用。