メモ帳

やったこととかちまちまと書く 需要のない記事を生成している

Riot.jsを始めてみた

riotjs.com

Riot.jsとは

React.jsっぽいやつ

始め方

github.com
からダウンロードして使うか
https://cdn.jsdelivr.net/riot/3.0/riot+compiler.min.js
で読み込む

今回はver 3.0.1をダウンロードして使った。

今回書いたコード

main.html

<html>
  <head>
    <title>Riot.js</title>
    <script src="./riot-master/riot+compiler.js"></script>
  </head>
  <body>
    <layout></layout>
    <script type="riot/tag" src="main.tag"></script>
    <button type="button" onclick="riot.mount('main','sub');">change</button>
    <script>
        riot.mount('layout');
    </script>
  </body>
</html>

main.tag

<layout>
    <main></main>
</layout>

<main>
    <h1>Hello World</h1>
</main>

<sub>
    <h1>Hello @kwnktks0515</h1>
</sub>

MeteorのUsersCollectionのpublishの仕方

docs.meteor.com

つまづいたところ

autopublishを消すとコレクションが同期されなくなるので当然

Meteor.users.find().fetch();

が本来の働きをしてくれない(バージョン1.4.2.3で動かして見たところ自分のデータしか返さない)

Meteor.publish(name,function() {
  return Meteor.users.find();
}

をしたら同期されるはずだがusersコレクションの名前がわかならいので期待した動作をしてくれない。

解決策

Meteor.publish(null,function(){
  return Meteor.users.find();
});

あとはfieldsオプションを与えるなどしてお好みのデータを生成するだけ

参考サイト

stackoverflow.com

ClojureScriptでNode.jsを動かす

kwnktks0515.hatenablog.comの続き

動かしてみたコード

Clojurescript / node.js basic examples · GitHub

追加で

(nodejs/enable-util-print!)

を入れないと動かないっぽい
参考:Quick Start · clojure/clojurescript Wiki · GitHub

非ビルドツール編

build.clj

(require 'cljs.build.api)
(cljs.build.api/build "src"
  {:main "helloserver"
   :output-to "out/main.js"
   :output-dir "out"
   :target :nodejs})

Leiningen編

project.clj

(defproject cljs-test "0.1.0-SNAPSHOT"
  :plugins [[lein-cljsbuild "1.1.4"]]
  :dependencies [ [org.clojure/clojure "1.8.0"]
                  [org.clojure/clojurescript "1.8.51"]]
  :cljsbuild {
    :builds [{
        :source-paths ["src"]
        :compiler {
          :main "helloserver"
          :output-to "out/main.js"
          :output-dir "out"
          :target :nodejs
          :optimizations :none
          :pretty-print true}}]})

共通部分

node out/main.js

して http://127.0.0.1:1337/ にアクセスしたらHello Worldって出てくる。