检查提供的参数是否是函数而不是猫鼬模型



我正在编写一个中间件。中间件接受两个参数,一个是猫鼬模型,一个是普通的JavaScript函数。

function someMiddleware(arg1){
// here, how to differentiate?
if(typeof arg1 === 'function') console.log("it's a function")
}

Mongoose模型是函数,但我想要我的一些中间件的消费者函数能够传递一个模型或一个普通函数。

但是我如何在我的代码中区分两者呢?

// true for functions that don't inherit from mongoose.Model
Object.getPrototypeOf(arg1) !== mongoose.Model;

最新更新