狠狠撸
Submit Search
Light TableでClojure入門#2
?
Download as PPTX, PDF
?
6 likes
?
2,064 views
Tokusei Noborio
Follow
ClojureでLight Tableを使い、ウェブアプリケーションを作ります。Tokyo.clj#20で使用した資料です。
Read less
Read more
1 of 16
Download now
More Related Content
Light TableでClojure入門#2
1.
Light Tableで Clojure入門 ニャンパス 登尾(@tnoborio) http://bit.ly/hello-clojure2
2.
やること 前回まで: http://bit.ly/hello-clojure1 Light Tableの使い方のおさらい Ring ウェブアプリケーション
3.
Light Tableの使い方 Workspace Commands
4.
Workspaceの表示 ● Control +
SpaceでCommands ● Commandsを出して、“Toggle workspace tree”を選択 →Workspaceが左ペインに表示 Macで、Control+Spaceが動かない場合、システム環境設 定>Spotlight “Spotlightメニューのキーボードショートカットチェッ ク”を外す
5.
Light TableでREPL Commandsから”Instarepl: Open
a clojure instarepl” ● (+ 1 2 3) ● (println “Hello”) 標準出力は、 Commands→“Console: Toggle console”
6.
Leiningen $ lein -version Leiningen
2.3.4 (入ってなければ)Leiningenのインストール 前回を参考に http://bit.ly/hello-clojure1
7.
ウェブアプリケーション テンプレートを使ったプロジェクト作成 lein new compojure
webapp
8.
Light Tableから 1. Viewメニュー→Workspaceを表示 2.
Commands→”Add folder”で Workspaceにwebappを追加
9.
ディレクトリ構造 ● project.clj ● src/webapp/handler.clj ●
resouces/public/ ● test/
10.
起動 $ cd webapp $
lein ring server ブラウザが立ち上がり、“Hello World”と表示 されればOK
11.
project.clj (defproject webapp "0.1.0-SNAPSHOT" :description
"FIXME: write description" :url "http://example.com/FIXME" :dependencies [[org.clojure/clojure "1.5.1"] [compojure "1.1.6"]] :plugins [[lein-ring "0.8.10"]] ← LeiningenのRingプラグイン :ring {:handler webapp.handler/app} :profiles {:dev {:dependencies [[javax.servlet/servlet-api "2.5"] [ring-mock "0.1.5"]]}})
12.
src/webapp/handler.clj (ns webapp.handler (:use compojure.core) (:require
[compojure.handler :as handler] [compojure.route :as route])) (defroutes app-routes (GET "/" [] "Hello World. hogehoge") ← 書き換えて保存しブラウザから確認 (route/resources "/") (route/not-found "Not Found")) (def app (handler/site app-routes))
13.
例) HTMLページを追加 (defroutes app-routes (GET
"/" [] "Hello World. hogehoge") (GET "/hoge.html" [] "<html><body>hoge</body></html>") (route/resources "/") (route/not-found "Not Found"))
14.
例) 画像やcssファイルを置く ?resouces/publicディレクトリのファイルを置くとその まま表示。 resouces/public/nyampass.jpg → http://localhost:3000/nyampass.jpg handler.cljのここのおかげ (route/resources
"/")
15.
例) GET、POSTの値 (defroutes app-routes ... (GET
"/params" {params :params} (str params)) …) http://localhost:3000/params?a=hoge&b=1234 → {:b "1234", :a "hoge"}
16.
例) Redirect マップとして返す (GET "/redirect"
[] {:status 302 :headers {"Location" "http://www.yahoo.com/"} :body ""})
Download