hagino3000's blog

平成アーカイブス (更新停止)

node.js

Node.jsのモジュールをC++で書く (ObjectとArrayを受け取るメソッド)

プリミティブな値を引数で受けとる場合よりもやや面倒。JavaScriptの仕様上どんな値や型でも受けとってしまうので、C++側のチェックコードがどんどん増えていく。動作確認用のコードがこうだとする var Test1 = require('./build/Release/Test1'); Test1.giv…

Node.jsのモジュールをC++で書く (引数と戻り値)

引き続きv8.hを読みながらNodeモジュールを書く練習をする。モジュールのメソッド定義ですが、名前の通りv8::Argumentsが引数の表現で、[]オペレータでアクセスするとv8::Value型のそれぞれの引数が得られる。型チェックはIsNumberやらIsStringといったメソ…

Node.jsのモジュールをC++で書く (Hello World編)

C++弱者ながらC++でNodeモジュールを作る事にしたのでいろいろと。まずは公式サイトの解説を参考にしてみる。 Addons Node.js v0.6.12 Manual & Documentationl http://nodejs.org/docs/latest/api/addons.html Hello World 最初にHello Worldのコードが載っ…

サイボウズのスケジュールをGrowl通知する

Nodeで取ってきて、growlnotifiyに突っ込んでみた。サイボウズガルーンのAPIはSOAP(xmlをHTTP POSTで叩けばいい)だけど、ドキュメントが見つからなかったので元々あったライブラリをNodeで動く様に改造して使った。 cybozu-connect - Cybozu API JavaScript …

MacOSでnpm install mongodbした時にエラーになる件

半日悩んでしまったのだが、python_selectでPython25をアクティブにしていたのが原因だった。node-wafがPython26以上じゃないと動作しないっぽい。 node-waf configure build Checking for program g++ or c++ : /usr/bin/g++ Checking for program cpp : /u…

nodeunitを使ったテストコード

サーバーにnodeを使いつつTDDをするためにnodeunitを使ってみた。試しにmongoDBの操作を直列で記述できるラッパーを作って、それのテストケースを3つ書いた。テストコード var mongodb = require('mongodb'); var Transaction = require('./mongotransaction…

node + express + jQueryでJSON-RPC

GithubでjqueryでJSON-RPCするためのライブラリを公開していたのだが、何も考えずにPull Requestを取りこんでいたら全く動かない上に、読解不能かつバグの塊の様な状態になっていた。そろそろ自分で使いたくなったのでテストコードを書いてバグfixした。テス…

0mq(zeromq)をnode.jsで使う

depthJSを参考にKinectとブラウザの連携をさせていたのだが、depthJSは中間層がPythonのtornadeなので、node.jsにしてみた。 zeromq.nodehttps://github.com/JustinTulloss/zeromq.node インストールはnpmからできた。コードはこれだけ。 var http = require…