4

HTML5 アプリから Datomic データベースまで、基本的なエンド ツー エンド機能を実装しています。最初のポート オブ コールは、クライアントに Datomic REST API ( http://docs.datomic.com/rest.html ) に対して直接 AJAX 呼び出しを行わせることです。

このアプローチで解決する必要がある問題は、クライアント アプリケーションが JSON を使用したいのに、データが EDN に返されることです。

クライアントでJavascriptを使用してそれを行う方法があることがわかります。たとえば、いくつかのライブラリコードを使用してEDNを変換します(例として、jsednを見つけました-https ://www.npmjs.com/package/jsedn )

Javascriptを使用して、このように機能することを経験した人はいますか? あるいは、EDN から JSON への変換は、 http: //swannodette.github.io/2014/07/26/transit- -clojurescript/ ?

ありがとう

フィル

[2015 年 3 月 4 日編集 - 明確化: クライアント側の Clojurescript により、EDN を JSON に変換する CLJS コードを取得し、それを JS にコンパイルしてからクライアント側のライブラリとして使用するようなことを考えています。]

4

2 に答える 2

1

コメントに示されているように、@SLD の正解を実装するために私が行った完全な手順を次に示します。

1) 上記の回答から cljs コードを取得します。

2) ビルドで使用する project.clj ファイルを作成します。オプションを使用する必要があることがわかりました

:最適化 :空白

生成されたコードが私にとって意味のあるものになるように (そして RequireJS に読み込まれるように)

3) コマンドを使用する

lein cljsbuild 一度

js ファイルをビルドします。コンソール出力は、project.clj で指定されたメインの生成ファイルの名前を示します。

4) (RequireJS を使用している場合) 生成されたファイルを RequireJS 構成の「パス」に追加します。

5) (RequireJS を使用している場合) 生成されたファイルはモジュールではないため、「shim」エントリを追加します。エクスポートの正しい値を取得するには、3) で生成された js ファイルを調べて、どのグローバル オブジェクトがエクスポートされているかを確認します。そのグローバル オブジェクトの名前を shim の「エクスポート」値として追加します。

于 2015-03-17T13:58:41.787 に答える