zoukankan      html  css  js  c++  java
  • Clojure Web编程 json格式返回

    在用Clojurescirpt来写前端之后,我终于碰上了跟后台交互的过程。
    首先要解决问题的是,通过jquery传输到后台的数据怎么接受。

    对于这一点,用Compojure已经解决这点问题。它是一个Ring的特定领域接口。(这少我是这么称呼它的。)

    那么怎么返回json的格式的处理呢?

    Compjure自带的是字符串返回格式。不是json样式。所以需要自己动手。
    方法1:进行json格式的处理,自己写函数。对于比较简单的数据结构可以这样,但是我比较懒。
    方法2:用中间件来使用。(Clojure的中间件更多的是一种在函数调用链上面嵌入一节操作的过程,我的意思是,在clojure中的操作更多的是一种函数多层嵌套调用,数据经过层层函数最终出来,既所得结果。)原本想使用Compojure文档里面推荐的中间件:ring-middleware-format,但是后来看看它的文档太多。我耸了。然后就用了ring-json中间件。该中间件就四个函数。很好使用,就是在你输出的时候,记得多嵌套一个函数就行。

    (ns blackmamba.routes
        (:use
            compojure.core
            blackmamba.views
            [hiccup.middleware :only (wrap-base-url)]
            ring.middleware.json ; ring-json的中间件
            ring.util.response ; 工具函数
        )
        (:require [compojure.route :as route] [compojure.handler :as handler] [compojure.response :as response]))
    
    ; 路由设置
    (defroutes main-routes
        (GET "/" [] (index-page)) ; 首页
        (GET "/loginAuth" [password username]
              (response {"账户:" username "密码:" password}) ; 返回的时候一定要用映射格式
        )
        (route/resources "/") ; 资源
        (route/not-found "网页没有找到!")) ; 没有找到
    
    (def app ; 应用入口
        (-> (handler/site main-routes)
            (wrap-base-url)
            (wrap-json-response) ; 输入之前包装json
            ))

  • 相关阅读:
    python中获取python版本号的方法
    Unity3D 的大场景内存优化
    Unity中的内存泄漏
    HDR和bloom效果的区别和关系
    用TexturePacker打图集用于UGUI中
    Lua的闭包详解(终于搞懂了)
    深入浅出!从语义角度分析隐藏在Unity协程背后的原理
    Unity3D导入3DMax模型缩放单位问题深入分析
    Unite 2017 | 从《闹闹天宫》看MOBA游戏里的网络同步技术
    Unity声音-音源组件
  • 原文地址:https://www.cnblogs.com/snakevash/p/3012766.html
Copyright © 2011-2022 走看看