如何在Opa中执行文件I/O?

5 file-io opa

在阅读了(几乎)整本电子书并查看API后,
我仍然在问自己如何用opa实现"传统"的Web服务器行为.

我理解(至少我相信)opa将
编译时指定的外部资源链接到可执行文件中,使它们成为不可变和永久性的.

但是,如果我想在不重新编译的情况下更改应用程序的样式表呢?
stdlib(apidoc)中似乎有一些方法,但它们并没有涵盖我从其他编程语言习惯的方法.

一个可能的解决方案,我能想到的是利用数据库内部的,
但是这看起来好像有点矫枉过正了一些简单的像传统的文件I/O.

ako*_*ski 6

编辑:博客文章解释了有关在Opa中处理外部资源的更多信息.


长话短说:你很少在Opa中使用外部文件.

让我试着打破这个.Opa确实会嵌入资源.但对于开发模式,您确实只想调整它们(主要是CSS)并立即查看更改.如果您以非发布模式编译程序,那么它将支持这种操作(尝试--help,下面是摘录)

Debugging Resources : dynamic edition:
    [...]
    --debug-editable-css
                Export the CSS files embedded in the server to the file
                system, so that they can be viewed and edited during
                execution of the application
Run Code Online (Sandbox Code Playgroud)

对于许多其他可编辑和更改的资源,可以使用数据库.

如果你真的需要处理文件(再次:使用Opa,你需要它比传统的网络语言少得多),那么请看一下模块stdlib.io,并在BslFile模块中绑定Ocaml函数进行文件操作.