JavaScript

express.ioの導入

紹介までしといてまだセットアップもしてなかったのかよっていうツッコミはおいといて。簡単に紹介し直すと、Node.jsのアプリの定番フレームワークとしてExpressがあり、またWebSocketを主に使った双方向通信ができるのがSocket.IOで、 この2つを合わせて使…

esprimaのパーサを試してみる

2つ前の記事で紹介したJavaScript Source Transformation: Non-Destructive vs Regenerativeのコメント欄にて、esprimaというパーサがあることを知った。 さっそくnpm installして試そう・・・と思ったのだが、なんと公式サイト上で試せてしまった。 http://…

UglifyJSのパーサを試してみる

前回の記事の続き。 asyncblockのソースを調べたところ、asyncblockのsource transformationは、内部でUglifyJSを使っていた。 UglifyJSは普通はソースをminifyする用途で使われるが、その一部としてjsの文をparseしており(当然か)、その部分だけ抜き出して…

記事を読んだ: JavaScript Source Transformation: Non-Destructive vs Regenerative

Node.jsの非同期処理を同期っぽく書けるようにするasyncblockというモジュールのreadmeを読んでいて、 その中に Source Transformationという言葉が出てきたので、なんじゃこれとググって次の記事を参照した。http://ariya.ofilabs.com/2013/06/javascript-s…

RequireJSで循環参照の回避

Backbone.jsの各ファイルをRequireJSでまとめて使ってるます。今回生じた問題は、 「viewからrouterをRequireJSを使って読もうとしたとき、なぜか読み込まれない」現象 views/index.js define(['router', 'backbone'], function(router, Backbone) { var Ind…

.bash_profileでnvm useしてもなぜかnodeやnpmコマンドが打てない?

nvm use するとそのままnodeやnpmコマンドが使えるようになるのだが、~/.bash_profileに次のように書いても、 source ~/.nvm/nvm.sh nvm use "0.10" export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/binなぜかnodeやnpmコマンドが効かない。もう一度 …

jade(テンプレートエンジン)をクライアントサイドで動かすの巻

2014/02/24 追記: jade.compile(jadeText, {client: true})は使えなくなったようです。かわりにjade.compileClient(jadeText)を使えとのこと。 あと、下の文中のanonymousはtemplateに変わってました。 Node.jsのフレームワークExpressの標準テンプレートエ…

Problem 47

今日のコード書き練習です。ソースコードアップするのここが便利なので^^; ぱぱすに誘われて数的な問題を解いてるけど http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2047 jsの流儀が分からないcoffeescriptのコードです。結構話に…

MongooseArrayのindexOf

node.jsいじってます。 さらっと備忘録 mongoose.Schema.Types.ObjectId ObjectIdの比較は===ではダメ、anObjectId.equals(anotherObjectId)を使う Array.indexOf(obj) // mongooseのモデル var FooSchema = new Schema( {bars: [{type: ObjectId, ref: hoge…

Backbone.jsにおけるMVC

Cが多分ないんですけどね。Backbone.jsのM-Vは、以前書いたような教科書通り(?)のObserverパターンで書かれる。iOSプログラミングにおけるMVC - qsonaの日記でポイントとしては、Modelに対してViewが、自分をObserverとして登録するときに、 「Modelが変更さ…