JavaScript

node.jsでのRESTサーバ作成

Express.jsを使ってRESTなAPIサーバを作成する方法を調べてみました。ポイントを箇条書きにします。 express-resourceモジュール jQueryでのPUT/DELETE送出 各メソッドと、コールする際のHTTPリクエストです。 index(GET) new(GET) create(POST) show(GET) e…

plistを使ってforeverをデーモン化(OSX)

個人的な使い方として、foreverをMac上で使って永続化する事は(必要な時だけ起動するので)今のところそれほど無いのですが、使う事もあるかと調べてみました。forever自体が起動・停止・一覧表示機能を持っているので、launchctlから扱う利点は、OS起動直…

node.jsをGoogle Chromeでデバッグ

node.jsで開発していると、サーバ側のデバッグは単純な場合、console.logを使って変数などをコンソールに出力すると思います。ただ、これだとオブジェクトなどの変数が展開されて表示されるため、変数の構造が込み入ったものの場合、とても探しにくい事があ…

node.jsでファイル・ディレクトリの監視

使いそうなので調べてみました。 File Systemのfs.watchを使います。 fs.watch('somedir', function (event, filename) { console.log('event is: ' + event); if (filename) { console.log('filename provided: ' + filename); } else { console.log('filen…

Node.jsでMySQLのAES Encrypt/Decrypt

MySQL上でAES_ENCRYPT()されたものをNode.js上でDecryptする方法です。同様にEncryptの方法もまとめておきます。 sha1/md5/Bcrypt等のハッシュは過去記事にあります。

DropboxのDatastore APIをさっそく使ってみた

Dropboxが公開したDatastore API。簡単に説明すると、Dropbox内にファイルではなく、構造化したデータを保存できるというもの。 先日使ったParseのようなものと考えて差し支えないが、今のところ認証した自分のデータしか扱えないようだ。全員が見れるような…

PhoneGap 2.9.0を触ってみたよ

Titanium mobileはやってましたが、PhoneGapの方はやってませんでした。実際触ってみると、特にこれと言って難しそうなところは無く、TitaniumでのWebViewからリクエストを投げるのと大差ないように感じます。それから、始めたばかりで良く分かってないです…

ローカルに設置したlvh.meなnode.jsのサイトをスマフォから見る方法

開発環境としてローカルにnode.jsのアプリケーションを置いている場合、通常であればローカルIPアドレスでアクセスすれば良いだけなんですが、hoge.lvh.me*1などの様にサブドメインを見ている場合、脱獄済みのiOS端末やrootedなAndroid端末のように、hostsを…

Parse Hostingを使ってみた

先月、Facebookによって買収された事で注目されていたParseを使ってみました。ParseはJavaScript SDKを使う事で、簡単にデータをParse内に保存する事ができます。SDKは他にもiOS/Android/Windows Phone 8/Windows/Mac OSX用もあるので、クロスプラットフォー…

node.jsのMVCフレームワークSails.jsを使ってみた

久々の記事ですね。引越しがあったので、バタバタしてました。という事でさっそく。 最近はてブ等ででフレームワークのSails.jsの記事があり、ちょっと気になってました。 Sails 0.8.9:リアルタイムNode MVC フレームワーク Node.js の MVCフレームワーク Sa…

node.jsでのXML2JSONとXPath

JavaScriptだとJSONが扱いやすいですが、XMLを使う場合も少なくありません。 node.jsでXMLをJSON形式にする方法と、XPathでノードを取得する方法を調べてみました。

GeoLocation周りで使えるJSライブラリ

地図を使ったアプリケーションも増えているので、手軽に距離や中心点などを取得できるライブラリがあった方が何かと便利です。 geolib.jsというのが使い勝手が良さそうです。

gruntでJavaScript/CSSを結合・minify

何とか見よう見まねで設定できたのでメモ。 他に良い方法があるんだと思うのだけど、ひとまず出来たので。

node.jsからPhantomJSを使ってPDFを生成する

昨日はPhantomJSをインストール、コマンドラインからPDFや画像を生成してみました。 今日は実際の用途に使われそうな、node.js(+ ExpressJS)からPhantomJSを使う方法を検証してみました。

PhantomJSでスクリーンショットを撮る&HTML2PDF

PhantomJSは画面の無いブラウザをJavaScriptで操作できます。タイトルはPhantomJSの一部の機能でしかなく、ブラウザで可能な処理なら何でもできそうです。 PhantomJSを使う準備と、いくつかの使い方をまとめておきます。

Firefox OSでサンプル作ってみた

実機の話も出始めたFirefox OSを触ってみて、簡単なサンプルを作ってみました。 既にいくつか記事も出ていますので、基礎知識とか通常のウェブアプリについてはそちらにお任せして、端末用のAPIとかを調べてみました。 http://openweb.co.jp/2013/01/23/web%…

Node.jsでAmazon S3にアップロードする方法(アクセスコントロール編)

前回、普通にS3にアップロードする方法を調べました。 今回は規定のアクセスコントロールを使って、アップロード時に表示・ダウンロードなどのパーミッションを設定する方法をメモします。

neu.Nodeのイベントを開きました&いじって分かった事

イベントの内容はYou+に書いた内容にお任せするとして、色々試して分かった事などをまとめておきます。

neu.Nodeを触ってみました

iOS上でNode.jsを動かすというneu.Node。1/16にneu.Node リリースのお知らせで公開されたneu.Nodeを試してみました。最初のとっかかりとして、どこから始めればいいのかまとめてみます。ソースコード https://github.com/snakajima/neunode

ExpressJSでのカスタム404/403ページ

通常のExpressJSの404エラーは Cannot GET /hoge のような簡素なものです。 今さら書く必要もありませんが、コンバージョンを上げるため、ユーザビリティのためにも独自にエラーページを設置しておくべきです。という事で、ExpressJSでの実装方法をまとめて…

ExpressJSでのfavicon.ico変更方法

年明け一発目の記事がこんな内容なのも不本意ですがwExpressjsを使ったプロジェクトは、初期表示ではExpressjsの味気ないfaviconになっています。これを変更する方法です。

ChromeでAccess-Control-Allow-Originを停止させつつ、別アプリとして動かす

以前からChromeでの開発・デバッグがメインになっているのですが、ちょっと前からローカルで開発している時に、以下のようなメッセージが出て、リソースにアクセスできない事が多々ありました。 XMLHttpRequest cannot load file:///*****. Origin null is n…

Node.jsでAmazon S3にアップロードする方法

12月6日にAmazon Web Services ブログでAWS SDK for Node.jsが発表されました。 今までも各言語用のSDKが用意されていましたが、Node.jsでも利用できるようになったので、さっそく試してみました。 最初に引っかかりそうな箇所もあるので、まとめておきます。

Node.jsでのZip解凍

node-zipモジュールで簡単に操作できました。 インストール $ mkdir zip_sample $ cd zip_sample/ $ npm init $ npm install node-zip --save

ExpressJSでのHTML分割管理(ejs)

HTMLを出力する時、全体のレイアウト部分とコンテンツ部分を分けて管理する事は良くあります。ヘッダ・フッタは固定でレイアウトファイルとして保存しておき、管理をしやすくさせておくのにExpressJSではexpress-partialsが使えるようです。#いくつか検索し…

ExpressJSのルーティングを分かりやすくするモジュール

ExpressJSを使っていると、ルーティングの記述がだんだん煩雑になってきます。 app.get()やapp.post()がいくつも並び、それぞれの関係が分かりにくくなってきてしまうのを解消できるのがexpress-namespaceです。例えば、以下の様なリクエストがある場合を想…

Node.jsでのPretty Print(HTMLでも)

XMLやHTMLを整形して表示したい、出力したい場合はよくあります。 そんな時に使えるのがhtmlモジュールです。ではさっそく使ってみます。

ExpressJSでのバリデーション(express-validator)

フォームとか値の受け渡しに使うバリデーションですが、ExpressJSで簡単に使えそうなライブラリexpress-validatorがあったのでまとめておきます。さっそくインストールから。 $ express -e validator $ cd validator $ npm install $ npm install express-va…

Node.jsでURLからダウンロードする方法

まま使うかもなのでメモ。 var fs = require('fs'), request = require('request'); var download = function(uri, filename){ request.head(uri, function(err, res, body){ console.log('content-type:', res.headers['content-type']); console.log('cont…

Google Analyticsのイベントトラッキング

Google Analyticsでページ単位ではなく、ページ内のアクション等でイベントを記録する方法を調べてみました。 ついでに、今時onclickイベントをHTML内に記述するのはダサいので、外部JSで実装しました。