【问题标题】:How to read a resource file in Scala.js?如何在 Scala.js 中读取资源文件?
【发布时间】:2023-04-08 18:37:02
【问题描述】:

假设我有一个map.csv 文件与index-{dev,opt}.html 处于同一级别(或其他webapp 可访问的位置),例如:

key1,value1
key2,value2
...
keyN,valueN

我想读入那个 CSV 文件并最终得到一个 Map[String,String]。我知道如何在 Scala 中做到这一点,但我将如何在 Scala.js 中做到这一点?

我试图不对键和值进行硬编码。

【问题讨论】:

    标签: scala.js


    【解决方案1】:

    解析与在传统 Scala 中的解析基本相同——毕竟,它是同一种语言。

    所以真正的问题是获取文件。那里没有万能的解决方案。例如,这取决于您使用什么作为 Web 服务器。我自己的系统是基于 Play 的,the cognate code 看起来像这样:

    override def postInit() = {
      val ajaxCall:PlayAjax = controllers.Assets.versioned("messages/default/clientStrings")
      ajaxCall.callAjax().map { messageText =>
        val hoconTable = HoconParse(messageText)
        _messages = Some(MessagesImpl("", hoconTable))
        _readyPromise.complete(Success())
      }
    }
    

    其中的细节是我的(相当复杂的)设置所特有的,但基本原则很简单:发出 AJAX 调用以将文件加载为文本,然后解析该文件。

    还有其他选项——例如,在服务器端加载和解析文件,然后使用Autowire 之类的东西将其作为强类型结构发送到客户端。这完全取决于您的基础架构是什么样的。

    【讨论】:

    • 我正在研究基于此的解决方案。当我让它工作时会告诉你。谢谢。
    • 到目前为止它不起作用,而且我已经阅读了在 Chrome 上无法使用 Ajax 访问本地文件的信息,所以我想我必须想出另一种方法。
    • 啊——是的,本地文件是他们自己的特殊捆绑包,而且往往很麻烦。
    猜你喜欢
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 2017-05-18
    • 2016-06-17
    相关资源
    最近更新 更多