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

时间:2011-07-05 17:59:23

标签: file-io opa

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

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

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

我能想到的一个可能的解决方案是利用内部数据库,
但对于像传统文件I / O这样简单的东西来说,这看起来有些过分。

2 个答案:

答案 0 :(得分:6)

编辑:this博客文章详细介绍了如何处理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

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

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

答案 1 :(得分:2)

我认为这个模块适合您: http://opalang.org/resources/doc/index.html#file.opa.html/!/value_stdlib.io

import stdlib.io
my_css = File.content("css/file.css")

我没有看到写文件的方法,但我认为如果你需要写,你应该使用db。 但要阅读我认为这是解决方案:)