节点中的Express Module导出函数或对象

时间:2018-03-14 11:53:58

标签: node.js express

在节点中使用express时,我们编写app = express(),这表明express模块​​只导出一个函数,即module.exports=function(){}这样的东西,但同时为了使用静态文件,我们执行类似{{1}的操作这表明express模块​​将具有静态函数的对象导出为一个特征。有人可以解释这是否可能与此相矛盾?

1 个答案:

答案 0 :(得分:1)

函数是JavaScript中的一等公民。你可以传递它们,你可以有效地将它们视为对象:

function express() {}

express.static = function () {};
express.SOME_CONSTANT = 42;

以上示例允许消费者将express()作为函数调用,或引用express的任何属性,其中一个恰好是另一个函数。

您可能在使用function prototype的内置方法之前遇到过此概念,例如callapplybind

function express() {}

const boundExpress = express.bind(someContext);