1

Clojure は初めてで、Monger に問題があります。

Monger を Friend で使用しようとしています。私はこのnsを持っています:

(ns cemerick.friend-demo.users
  (:require [cemerick.friend.credentials :refer (hash-bcrypt)]))

(def users (atom {"friend" {:username "friend"
                            :password (hash-bcrypt "clojure")
                            :pin "1234" ;; only used by multi-factor
                            :roles #{::user}}
                  "friend-admin" {:username "friend-admin"
                                  :password (hash-bcrypt "clojure")
                                  :pin "1234" ;; only used by multi-factor
                                  :roles #{::admin}}
(derive ::admin ::user)

Mongerを使用してこれをデータベースに追加しようとすると

(mc/insert "users"  {:username "friend",
                     :password "$2a$10$YGcqRFL67J5NDo7hfkVslerDYc1iIGBy0js871wxnXxOvdvJZ4Aua",
                     :pin "1234",
                     :roles #{:cemerick.friend-demo.users/user}})

Mongerは Is there any way to put that value as is or is there any way to change to ?#{:cemerick.friend-demo.users/user}としてシリアル化します。"user""user"#{:cemerick.friend-demo.users/user}

4

1 に答える 1

1

関数が名前のみを返す"user"ため、おそらく返されます。name

(name :cemerick.friend-demo.users/user)
;=> "user"

strデータベースにキーワードを挿入する前に、各キーワードを呼び出すことで回避できます。

(str :cemerick.friend-demo.users/user)
;=> ":cemerick.friend-demo.users/user"
于 2013-06-20T15:24:12.243 に答える