NODE JS APP:这种符号是什么意思?

时间:2017-01-05 08:58:49

标签: node.js express

我从其他开发人员那里获得了一个项目,使用典型的MEAN堆栈,其入口点为server.js。

现在,在server.js中,执行以下操作的模块:

var express = require('express'); 
var app     = express();
var passport = require('passport');

还有另外两行代码看起来像是在进行某种路由,但我无法弄清楚它实际意味着什么:

require('./routes.js')(app, passport);
require('./apiRequest/authenticate')(app, passport);

我感到困惑,因为看起来require()从全局范围调用,而所有其他路由方法都被称为app,即app.use()。有人可以解释这些参数集的含义,以及为什么有两个集合也在require()调用,是否由Express提供?

1 个答案:

答案 0 :(得分:0)

routes.jsapiRequest/authenticate是两个本地(项目)模块/ js文件,基本上是必需的。

expresspassport是npm_modules提供的节点模块/库,通过节点模块解析。

app只是通过调用express模块​​/默认函数创建的快速实例。

传递给所需本地模块(路由和身份验证)的参数只是传递给那些模块的参数(默认导出函数),可以在这些文件中进一步使用(例如,如果你查看routes.js,你可能会看到他们使用app.use(...,其中app作为param以及护照模块提供)

更清楚地解释语法require('./routes.js')(app, passport);

  1. require - 用于将模块导入当前文件/模块的节点OOB功能
  2. require('./routes.js')解析routes.js文件的默认导出,在这种情况下是一个函数
  3. ...(app, passport)然后使用提供的参数调用此函数(从上面开始)(此处先前已定义 - 即使用require导入)
相关问题