在luminus中的自定义文件

时间:2016-08-18 17:18:24

标签: clojure luminus

我应该在哪里使用我在Clojure luminus应用程序中编写的代码文件?如何从中导出函数并将其导入另一个文件?说,我创建了一个文件“helper1.clj”,如何从“src / clj / my_app / routes / home.clj”中访问它的函数?我应该把文件放在哪里“helper1.clj”?

1 个答案:

答案 0 :(得分:3)

查看project.clj文件。您将看到一行:

:source-paths ["src/clj"]

这意味着src/clj目录将成为所有名称空间的根目录。命名空间是由点分隔的目录路径,命名空间的最后部分是文件名。一个例子:

File name:                 my_app/src/clj/dirone/dirtwo/myfile.clj
Namespace in this file:    (ns dirone.dirtwo.myfile ...)   

现在已经确定:您现在应该将新文件放在src/clj/my_app中。 helper.clj的命名空间如下所示:

(ns my-app.helper ...)

您可以在src/clj下创建新目录,例如src/clj/newdir。该目录中名为anotherfile.clj的文件的名称空间为:

(ns newdir.anotherfile ...)

查看您的my_app/routes/home.clj文件并查看顶部,您会看到:require [my-app.layout :as layout]的位置。您可以添加以下内容以引用文件myfunc中的函数helper.clj

;... list of items under :require
[my-app.helper :as h]
;...

(def something (h/myfunc ...))