如何使用 Express .listen()(在 Typescript 中)处理错误?

2024-01-21

目前正在将我的项目转换为使用 Typescript。我之前在 Node 中启动 Express 的工作代码如下所示:

server.listen(port, (error) => {
  if (error) throw error;
  console.info(`Ready on port ${port}`);
});

有了这个,我现在得到一个 Typescript 错误:

Argument of type '(error: any) => void' is not assignable to parameter of type '() => void'.

我尝试为参数分配一个类型,例如error: Error or error: any但这并不能解决问题。我在这里做错了什么?

另外,由于我是 Typescript 的新手,虽然我已经找到了大量用于学习 Typescript 的资源,但我是否应该在哪里了解如何在更特定于 npm 包的场景中处理 Typescript?


没有error¹.

 server.listen(port, () => {
   console.info(`Ready on port ${port}`);
 });

要监听错误,请使用server.listen(port).on("error", /*...*/) ².

1:文档非常嵌套:

The 快速文档 https://expressjs.com/en/api.html比如说

该方法与 Node 的 http.Server.listen() 相同。

Now 这些文档 https://nodejs.org/api/http.html#http_server_listen比如说htt.Server.listen equals Net.server.listen.

And that https://nodejs.org/api/net.html#net_server_listen然后说:

该函数是异步的。当服务器开始监听时,将发出 'listening' 事件。最后一个参数回调将被添加为“listening”事件的侦听器。

Now the “听”活动 https://nodejs.org/api/net.html#net_event_listening似乎没有引发任何错误。

²:这是我在快速问题跟踪器 https://github.com/expressjs/express/issues/2856.

请注意,在大多数情况下,您不想处理错误,如果服务器崩溃,那么最好的选择很可能是重新启动整个过程。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Express .listen()(在 Typescript 中)处理错误? 的相关文章

随机推荐