2016-03-25 10 views
0

からdefroutesマクロを使用することはできません:はcompojure

 

    (:use 'compojure.core) 
    (keys (ns-publics 'compojure.core)) 


    (defroutes app-routes 
     (GET "/" [] "Hello World") 
     (route/resources "/") 
     (route/not-found "Not Found")) 

私はこのメッセージを得た:

 
CompilerException java.lang.RuntimeException: Unable to resolve symbol: defroutes in this context, compiling:(restful_clojure\routes.clj:5:1) 

を私が実行したとき:

 

    (keys (ns-publics 'compojure.core)) 

それはマクロがあることを示しています定義:

 

    (defroutes PUT POST routing routes make-route let-routes DELETE ANY let-request GET HEAD PATCH context OPTIONS) 

+0

ファイル全体を投稿し、コードの実行方法を記述できますか?私はクラスパス上のcompojureで端末のREPLを起動しました。 –

答えて

0

Clojureは、方法がrequire,import,referおよびuseである。これらは異なる名前空間での作業用です。

:useは、Keywordです。これは関数のように動作します(例ではnilを返す必要があります)。ただし、必要な処理は行いません。

ns macroの中に混乱が生じている可能性があります。対応するキーワードを使用してこれらの機能の動作を「埋め込む」ことができます。

名前空間の詳細については、linkを参照してください。

関連する問題