Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
芝加哥老板没有';似乎没有将正确的值保存到MongoDB中_Mongodb_Model View Controller_Erlang_Chicagoboss_Nosql - Fatal编程技术网

芝加哥老板没有';似乎没有将正确的值保存到MongoDB中

芝加哥老板没有';似乎没有将正确的值保存到MongoDB中,mongodb,model-view-controller,erlang,chicagoboss,nosql,Mongodb,Model View Controller,Erlang,Chicagoboss,Nosql,所以我和芝加哥老板共度了一个晚上。我现在正试图将ChicagoBoss与MongoDB联系起来,用它构建一个应用程序(并学习两项我一直关注的新技术)。不幸的是,我似乎遇到了麻烦。具体来说,创建用户后,密码似乎与设置的密码不同。请注意,除了配置代码之外,所有代码都直接来自Chicago Boss教程 boss.config-re数据库: {db_host, "localhost"}, {db_port, 27017}, {db_adapter, mongodb}, 登录功能 login(

所以我和芝加哥老板共度了一个晚上。我现在正试图将ChicagoBoss与MongoDB联系起来,用它构建一个应用程序(并学习两项我一直关注的新技术)。不幸的是,我似乎遇到了麻烦。具体来说,创建用户后,密码似乎与设置的密码不同。请注意,除了配置代码之外,所有代码都直接来自Chicago Boss教程

boss.config-re数据库:

 {db_host, "localhost"},
 {db_port, 27017},
 {db_adapter, mongodb},
登录功能

 login('POST', []) ->
   Name = Req:post_param("name"),
   case boss_db:find(user, [{name, Name}]) of
     [User] ->
       case User:check_password(Req:post_param("password")) of
         true ->
           {redirect, proplists:get_value("redirect",
            Req:post_params(), "/"), User:login_cookies()};
         false ->
          {ok, [{error, "Bad name/password combination"}]}
        end;
     [] ->
       {ok, [{error, "No User named " ++ Name}]}
   end.
然后-从管理界面创建用户并使用

   hash_for(Name, Password) ->
      Salt = mochihex:to_hex(erlang:md5(Name)),
      hash_password(Password, Salt).
要生成哈希,将发生以下两种情况:

1) 用户已创建,但id不是user-1,而是usr-51970A2A3E01C027D400001

为什么呢?我以为ChicagoBoss遵循rails的自动递增数字索引惯例

2) 即使使用了传递到哈希_的密码,用户也无法登录

3) 芝加哥Boss服务器重新启动后,新创建的数据库对象将被保留,因此mongo至少正确地保存了一些内容

有人能解释一下这里发生了什么事吗?MongoDB是如何试图保存用户的?连接芝加哥Boss和MongoDB的正确方法是什么?Boss_db不是本地处理MongoDB吗

所有这些尝试用作跳转点的教程如下:


芝加哥老板确实支持MongoDB,但与SQL数据库相比,MongoDB在某些方面会有所不同。特别是,因为它“庞大”,MongoDB使用UUID而不是自动递增的ID。这允许创建新文档,而无需保留集中计数器。这就解释了为什么ID是“usr-51970A2A3E01C027D400001”而不是“usr-1”

至于密码问题,我认为下一步是添加调试打印语句。DB需要什么哈希值?数据库是否保存了正确的哈希值?如果通过管理界面创建用户,则可能会出现轻微错误,例如密码中出现额外的换行符


此外,您可以随时在邮件列表或IRC上ping我们。

以下内容存储在mongo数据库中:{“_id”:ObjectId(“51970A2A3E01C027D400001”),“name:“Dante Nuno”,“password_hash:“dc3b2391e431d9bc574f48c092eb3313”}以下是运行用户库的结果:“Dante Nuno”,“test1234”)。“dc3b2391e431d9bc574f48c092eb3313”然而,以下是在用户库上粘贴erlang:display(PasswordHash)的结果:检查密码看起来DB返回的是二进制,函数的hash\u返回的是字符串。试着运行二进制列表(PasswordHash),看看这是否解决了问题。它解决了(我已经在IRC频道的LooX建议下这么做了)。我要把这个记为Mongo gotcha。谢谢我也遇到了同样的问题,最后在PasswordHash和其他一些字段的模型中添加了“::string()”。