node.js - 我们在 Node.js 程序中实际从 Express 导入什么
问题描述
通常,当我们在 Node 中导入某些内容时,我们会执行以下操作:
const fs = require("fs");
... //use fs's methods for file system stuff
但是,当我们使用 express 时,我们正在做:
const express = require("express");
const app = express();
app.get( .... )
和进口的有什么区别?为什么我们express()
像函数一样调用(我假设它导入了某个函数,如果导入了,该函数会做什么)?如果我之前的问题无法解释,为什么我们不调用express
我们导入的对象的函数呢?
解决方案
你的问题做出了不正确的假设,你说
为什么我们不调用
express
对象的函数
但require("express")
返回一个Function
.
导出的内容有所不同。一个导出带有附加属性的对象,而另一个导出一个函数。
Express 是后者。见快递来源:
exports = module.exports = createApplication;
function createApplication() {...};
虽然 node 执行前者,但node fs source:
module.exports = fs = {...};