const a = express() 是如何工作的?
How does the const a = express() works exactly?
我最近开始学习Node/express。一个疑问现在困扰了我几个星期。我知道这是做什么的,而且我已经能够克服它。但是我无法理解 'const a = express()'.
行中使用的逻辑
express = require('express');
const a = express()
我想我以前在 javascript 中没见过这个。在这种情况下,express 是一个对象或函数(函数在 JavaScript 中也是对象)对吗?这一行让变量 'a' 可以访问许多重要的方法,例如 'listen' 和 'get'。但是这里的语法不会错吗?要使用express函数,我们需要写like
const express = require('express');
const a = express.express()
或者我们需要使用对象解构来写like
const {express} = require('express');
const a = express()
也许混淆是假设 express
模块的默认导出不是函数,但正如其他人指出的那样,express
的 default export 是一个函数。导入后,该函数的返回值是 Express 的一个实例,您可以在其中访问您提到的所有这些方法。
假设 function express
的定义和它 returns 的对象看起来像
class Express {
// Implementation of Express server
}
// You're importing this and calling the function, receiving a new instance of this class. In reality this could be a class or object for all I know.
export default function express() {
return new Express()
}
我最近开始学习Node/express。一个疑问现在困扰了我几个星期。我知道这是做什么的,而且我已经能够克服它。但是我无法理解 'const a = express()'.
行中使用的逻辑express = require('express');
const a = express()
我想我以前在 javascript 中没见过这个。在这种情况下,express 是一个对象或函数(函数在 JavaScript 中也是对象)对吗?这一行让变量 'a' 可以访问许多重要的方法,例如 'listen' 和 'get'。但是这里的语法不会错吗?要使用express函数,我们需要写like
const express = require('express');
const a = express.express()
或者我们需要使用对象解构来写like
const {express} = require('express');
const a = express()
也许混淆是假设 express
模块的默认导出不是函数,但正如其他人指出的那样,express
的 default export 是一个函数。导入后,该函数的返回值是 Express 的一个实例,您可以在其中访问您提到的所有这些方法。
假设 function express
的定义和它 returns 的对象看起来像
class Express {
// Implementation of Express server
}
// You're importing this and calling the function, receiving a new instance of this class. In reality this could be a class or object for all I know.
export default function express() {
return new Express()
}