仅当部署在Modulus.io

时间:2015-10-23 14:40:53

标签: mongodb meteor modulus.io

我已经编写了一个自定义帐户包,可以通过我们的内部系统验证用户的电子邮件和密码。在我或其他任何人的计算机上本地运行时,这样可以正常工作;用户可以登录并使用我们的流星应用程序。最近,我已将该应用部署到Modulus.io。部署顺利进行,没有任何错误,我可以加载网站的主页并执行不需要登录的操作。但是,当我尝试登录时,客户端说我输入了错误的用户名/密码组合,服务器抛出此异常:

Exception while invoking method 'login' Error: setUserId must be called on string or null, not object
    at [object Object]._.extend._setUserId (packages/ddp/livedata_server.js:701:1)
    at [object Object].setUserId [as _setUserId] (packages/ddp/livedata_server.js:634:1)
    at [object Object]._.extend.setUserId (packages/ddp/livedata_common.js:100:1)
    at loginUser (packages/accounts-base/accounts_server.js:206:1)
    at attemptLogin (packages/accounts-base/accounts_server.js:255:1)
    at [object Object].Meteor.methods.login (packages/accounts-base/accounts_server.js:411:1)
    at maybeAuditArgumentChecks (packages/ddp/livedata_server.js:1617:1)
    at packages/ddp/livedata_server.js:648:1
    at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)
    at packages/ddp/livedata_server.js:647:1

正如您所看到的,异常的堆栈跟踪永远不会触及除accounts_baseddp包之外的任何文件,这两个文件都是由Meteor Development Group开发的。这一点,伴随着一切在我的本地机器上正常运行的事实,让我相信错误来自modulus.io的配置方式,而不是我自己的代码。

我的问题似乎与this Meteor GitHub issue有关,其中有人遇到了与我相同的错误。不同之处在于他们正在处理已经拥有用户的数据库。我设置的modulus.io MongoDB数据库是完全空的,除了roles meteor包使用的一些条目。查看我的帐户包,我从不手动将对象添加为用户ID,这也会导致项目无法在我的本地计算机上运行。

非常感谢任何帮助。提前谢谢!

0 个答案:

没有答案