首页 > 解决方案 > 我不明白 express.js 代码是如何工作的。没有声明变量“路由器”

问题描述

我正在分析 express.js 代码,我认为下一个变量(对象)没有声明,但代码正在运行。所以哪位好心人可以告诉我?

lib/router/index.js#L47

function router(req, res, next) {
  router.handle(req, res, next);
}

我找不到声明路由器.handle 的位置。路由器永远不会被声明为外部函数。所以请告诉我为什么代码有效。

起初,我想下一个代码同样的问题。 lib/express.js#L39

var app = function(req, res, next) {
  app.handle(req, res, next);
};

但我发现它是声明的。 lib/application.js#L38

var app = exports = module.exports = {};

当然,我觉得有些奇怪,为什么函数名与变量(对象)名相同。谁能告诉我?

我在工作中使用 vue.js。所以,我认为我是 JavaScript 的中级水平。

标签: javascriptnode.jsexpress

解决方案


推荐阅读