我有一个EDN格式的简单数据文件,我需要在NodeJS上运行的ClojureScript cli应用程序中读取,但Clojure的相关核心库似乎都不可用(core.java.io/read,clojure.edn/read等)。我应该用什么来代替呢?
83qze16e1#
您可以用途:
(ns app.core (:require [cljs.reader :as reader])) (def fs (js/require "fs")) (defn read-edn [path f] (.readFile fs path "utf8" (fn [err data] (f (reader/read-string data))))) (defn process [coll]) (read-edn "/tmp/x.clj" process)
在上面的示例中,process将接收从文件中读取的数据结构。您需要实现process并向read-edn添加错误处理。
process
read-edn
332nm8kg2#
或者更简单地使用readFileSync(shadow-cljs示例):
readFileSync
shadow-cljs
(require '["fs" :as fs] '[cljs.reader :as reader]) (defn read-edn [path] (-> (.readFileSync fs path "utf8") reader/read-string)) (read-edn "/xxx/yyy/zzz/my-data.edn")
2条答案
按热度按时间83qze16e1#
您可以用途:
在上面的示例中,
process
将接收从文件中读取的数据结构。您需要实现process
并向read-edn
添加错误处理。332nm8kg2#
或者更简单地使用
readFileSync
(shadow-cljs
示例):