0

我收到了这个错误:

/home/user/node_modules/ldapjs/lib/server.js:65
throw new TypeError('Invalid argument type: ' + typeof (argv[i]));
        ^
TypeError: Invalid argument type: undefined
at mergeFunctionArgs (/home/user/node_modules/ldapjs/lib/server.js:65:13)
at Server._mount (/home/user/node_modules/ldapjs/lib/server.js:814:35)
at Server.add (/home/user/node_modules/ldapjs/lib/server.js:500:15)
at Object.<anonymous> (/home/user/workspace/ldap/ldap.js:34:8)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)

尝试在ldapjs guide上进行测试时。

由于该服务无法启动,因此此错误几乎阻碍了进一步测试。

4

2 回答 2

1

您在preldapjs 被分配函数数组之前传递给它(undefined即当时是)。变量和函数声明被提升到顶部,但赋值不是。

移动这个

133. var pre = [authorize, loadPasswdFile];

到顶部,或者至少在你将它传递给 ldapjs 之前。

该分配当前正在第 133 行进行,但您已经在第 34 行传递了它:

34. server.add('ou=users, o=myhost', pre, function(req, res, next) 

顺便说一句,您应该能够通过在代码开头设置它来更好地查看错误的来源:

Error.stackTraceLimit = Infinity;
于 2012-11-08T11:33:21.450 回答
0

我的“解决方案”是将整行注释掉。这肯定不是修复它的正确方法,但至少服务会在那时开始。

于 2012-11-07T07:50:13.640 回答