节点需要语法

时间:2017-04-07 20:05:22

标签: node.js

我是Javascript的新手,甚至比Node更新。我正在尝试读取快速服务器代码,但无法弄清楚我的app.js文件中的以下行:

module.require('./auth')(passport);

我知道我有一个变量,它在app.js中保存了护照模块:

var passport = require('passport');

并且我在同一目录中也有auth.js,它导出以下函数:

module.exports = function(passport) {
    passport.use('local-login', new LocalStrategy({
        usernameField: 'email'
    }, function(idpEmail, password, done) {
        // do email mapping
        findEmailFromDummyDb(idpEmail, password,function(err,user){
            if(err) {
                done(null, false, {
                    messages: err.toString()
                });
            } else {
                done(null, {
                    sysEmail: user.sysEmail
                });
            }
        });
    }));

然而,以下功能实际上做了什么?

module.require('./auth')(passport);

2 个答案:

答案 0 :(得分:1)

下面返回一个javascript函数。

module.require('./auth');

然后,您立即使用passport对象作为函数参数调用该函数。

(passport) 

答案 1 :(得分:1)

module.require('./auth')导入一个函数,然后以passport作为参数调用它。它与

相同
const auth = require('./auth');
const passport = require('passport');
auth = auth(passport);