【问题标题】:How to check if an object is an Express instance?如何检查对象是否是 Express 实例?
【发布时间】:2022-02-10 23:20:37
【问题描述】:

我正在使用 typescript 检查 Express() 返回的应用是否是 Express 实例。

我正在这样做:

import Express from "express"

const app = Express()

console.log(app instanceof Express)

但它总是返回false

【问题讨论】:

  • 我只是想知道您尝试检查 express 实例的目的是什么?
  • 我不认为你可以这样检查,当你做 typeof 时,你会得到两者的“功能”。这取决于您要通过这样做达到的目的。进行基本检查的一种方法是在应用程序上调用 path(),如果它为该应用程序设置,它将返回“”或某个路径。这只是基本的,如果它在控制之下也是如此,否则有人可以创建一个虚拟对象并在其下创建路径函数来绕过它。
  • 我正在开发一个检查所有路线的工具。它需要接收快速应用程序,所以我想在它接收到另一个不是快速服务器实例的东西时管理这种情况。 github.com/diegoulloao/router-dex
  • 我需要以更传统的方式检查它。我不知道快速服务器将包含哪些路径。
  • 创建一个典型的快速应用程序具有的属性/方法数组,并在您收到的对象上检查此属性。没有app instanceof Express检查。

标签: node.js typescript express


【解决方案1】:

没有instanceof 的方法来检查它。

所以我终于做到了:

if ( !app.hasOwnProperty("listen") || typeof app.listen !== "function" ) {
  // So it's not an Express instance
}

休息就是相信上帝。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多