Join 150K+ monthly readers. In-depth articles on Node.js, Microservices, Kubernetes and DevOps. Last week we were working on making our website indexable for search engines. This is the story of rewriting it and the summary of what we have learnt. Background Two months ago when we created RisingStack we had to decide what kind of technologies we wanted to use on our website. We only had a few stat
koa = require('koa') app = koa() # x-response-time app.use (next) ->* start = new Date yield next ms = new Date - start @set 'X-Response-Time', "#{ms}ms" # logger app.use (next) ->* start = new Date yield next ms = new Date - start console.log "#{@method} #{@url} - #{ms}" # response app.use (next) ->* @body = 'Hello World' app.listen 3000
ごめんなさい、koajsに浮気しちゃいましたでKoaを紹介しましたが、相変わらずKoaといちゃいちゃしています、今回はKoaで作るアプリケーションのテスティングについてです。 Koaはgeneratorベースでアプリケーションを記述させてくれるフレームワークですが、自分はテスティングも基本的にcoを介してgeneratorベースでテストを書いてみています。coを利用する際はmocha実行時に--harmony-generatorsオプションを指定する必要があります。 実際のコードは前回と同じく以下において有ります(まだまだ網羅できていないですが...) まずはExpressからの変更の影響が一番大きいコントローラのテストです。 コントローラのテスト JSONを返却するだけのAPI用途の場合はsupertestを用いるのが楽です。その場合のテストについてはkoajs/examplesにいっぱ
Koa.js is an expressive next-generation web framework written for Node.js by the people behind the Express and Connect frameworks. Koa.js leverages generators, which are a bleeding edge feature of JavaScript, and have not yet been made into stable versions of Node.js. Koa aims to use generators to save developers from the spaghetti of callbacks, making it less error-prone and thus more manageable.
co(function*() { var a = yield get("a.txt"); var b = yield get("b.txt"); var c = yield get("c.txt"); console.log(a + b + c); })(); ちょっと良くない? JavaScript の非同期プログラミングという 一番醜い所を綺麗に見せてくれる。 これならやっと人に勧められそうな気がする。 ※記事を書いた → [JavaScript] 非同期処理のコールバック地獄から抜け出す方法 - Qiita ちょっと過激目な予告 それで個人的な予告: Express は段階的に無くなるのではないか。 もしかすると、終焉を迎えることになるのではないか。 言い過ぎか... Koa に移行しよう co ベースの新しい Koa に移行しましょう。 まだバージョンは 0.3.0 だけどね。 ま
はじめに koaはp-baleine@githubさんの記事やLightSpeedCさんの記事で魅力を感じて触っています。 でもnode.jsといえばやっぱりsocket.ioを使った双方向通信ですね。 どうやって実現するか。 そこでググってみるとtakyamさんのブログにドンピシャな投稿がありました。 さっそくtakayamさんのコードを拝見すると、やっぱりsocket.ioの部分はごちゃごちゃしてしまうのは仕方がなさそうですね。 せっかくkoaのhttpのミドルウェア部分はすっきりしているのにと。。。 そこで今回はsocket.io部分もミドルウェアっぽく記述出来るモジュールを作成しました。 公開しているので試してみてください。 npmを使う場合はnpm install cocotte-mixin-wsです。 Koaのミドルウェア とっても単純に記述するとhttp部分のミドルェアは次の
はじめに Atom Shellとは GitHubが最近OpenSourceにして公開したATOMエディタのnode-webkitライクな部分。HTML5でデスクトップアプリが作れそうなやつ。 koaとは node.jsのWebフレームワークのexpressの次世代版的フレームワーク。generator使ってコールバック地獄からおさらばできるらしい koaを動かすには --harmonyオプションが必要 これはnode.jsでkoaを使う場合でも必要なV8に対してECMA6な実装を 利用可能にお願いするオプション。Atom Shellでもこれが必要。 appでredyイベント後にapp.commanLine.appendSwitchで色々 他にも内部のnode.jsに対して指定できる模様。 app.on('ready', function() { app.commandLine.append
var https = require('https'); var options = { key: fs.readFileSync(__dirname +"/key.pem"), cert: fs.readFileSync(__dirname +"/cert.pem") }; https.createServer(options, app.callback()).listen(4430); expressと違い、#callbackが必要だった。 オレオレ証明書でためすには key.pem、cert.pemの2ファイルを用意する。 自分は昔書いたブログ記事を参考にすると作れる。 Windowsだとハマるかも オレオレ証明書の作成をWindowsでやったら、BOM付で作られ、そのままだとエラーで怒られたので、BOMなしにして、ついでに改行コードもLFに変換したら動いた。 関連記事 Atom
いつもいつもexpressには大変お世話になっています、 でもちょっとした気の迷いからkoaに浮気しちゃいました、 koaの魅力をお伝えして、浮気の言い訳してみます koaについて koaはTJ Holowaychuk他Expressの開発メンバーが開発しているcoベースのnode 0.12向けWebフレームワークです。koaについてはかずぽんさんの以下記事が詳しいです: 浮気現場 浮気現場はここです: 浮気の仕方はこちら: ただのブログアプリです、管理画面のスタイルがまだ中途半端ですが…そのうち更新します。 koaの魅惑 では早速、koaの魅力を懺悔します、以下koaの公式ページより: KoaはExpressチームによる新しいWebフレームワークです、より小さくて、より表現的でロバストなWebアプリーションとAPIのためのフレームワークです。generatorを利用することでコールバック
qiita投稿テスト.元エントリ node.jsはasyncの夢を見るか?の続き. coのようなモジュール(他にもこことかこことか)がどのような形で実装されているのか知りたいのは僕だけでは無いと思う.理解のために出来る限り単純化してみた. var co = function(fn){ // callback var done = function(val){ // yieldに値を流し込む gen.next(val); } // make a generator var gen = fn(done); // start gen.next(); }; // test // 0~4までをディレイ付きで表示する co(function*(done){ for(var i=0;i<5;i++){ var val = yield setTimeout(function() { done(i); },
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く