Node.jsの次世代Webフレームワーク「koa」とは? | SiTest (サイテスト) ブログ

メニューボタン閉じるボタン

Node.jsの次世代Webフレームワーク「koa」とは?

皆さんはNode.jsでお仕事されていますでしょうか。
日本ではまだまだ少ないようですが、NASAのOSSでも採用されていたり、処理もかなり早いのでオススメですし、弊社のプロダクトでは積極的に採用しております。

Node.jsのWebフレームワークといえば
expressがデファクトとなりつつあり、弊社のプロダクトも大半はexpressを使っています。
今回はexpressの開発チームによって開発されたフレームワーク「koa」を紹介します。

koaとは?

Koa is a new web framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs. Through leveraging generators Koa allows you to ditch callbacks and greatly increase error-handling. Koa does not bundle any middleware within core, and provides an elegant suite of methods that make writing servers fast and enjoyable.(公式サイト #Introduction

 

Koaは、expressの開発チームによって設計された軽量フレームワークで、generatorを使うことでコールバック地獄に陥らないように設計されている次世代のNode.js用Webフレームワークとのことです。
多彩なミドルウェアが用意されており、それらを連携させることにより簡単に楽しくコードを組み上げることができます。

 

インストール

KoaはNode.jsの最新バージョンで動作しますが、
0.11.xを使用したい場合は --harmony もしくは --harmony-generators flag  が必要とのこと。

あとは npm でインストール〜実行できます。

$ npm install koa
$ node app.js

npm って本当に便利です。

 

HelloWorld

サンプルとしてHello Worldを書いてみましょう。
koaをインストールしたディレクトリに app.js というファイルを作りましょう。中身は下のように書きます。

var koa = require('koa');
var app = koa();

app.use(function *(){
  this.body = 'Hello World';
});

app.listen(3000);

Nodeコマンドでapp.jsを実行します。

$ node app.js

ブラウザを開いてhttp://localhost:3000 にアクセスすれば「Hello World」と表示されているかと思います。

hello_world

たった6行でしたね。簡単。

 

まとめ

expressとは異なりミドルウェアに細かく分解されているので、ミドルウェア開発がかなり楽しいそうです。
出来上がったコードもコールバック地獄にならず、見通しがいいモノになるのであれば、目的によってはフレームワーク選定の選択肢にいれても良いのではないかと思います。

 

おまけ

◆社内で採用しているAltJS「 LiveScript 」でHelloWorld

上記のHello Worldのコードを弊社で採用しているAltJS 「LiveScript」で書いてみます。

require! <[koa]>
app = koa!

app.use ->*
  @.body = 'Hello World'

app.listen 3000

かなり見た目がかなりスッキリしたと思いませんか?
LiveScriptの詳細は別のスタッフがこちらの記事で紹介してます。
Haskellライクに書くことができ、関数型言語としても面白いですよ。

そんなLiveScriptで仕事してみたいという方!
絶賛募集しておりますので採用ページよりエントリーお待ちしています。

参考・引用

http://koajs.com/
https://expressjs.com/
http://livescript.net/

今すぐお気軽に
ご相談ください。

0120-315-465

(平日 10:00~19:00)

今すぐお気軽に
ご相談ください。

0120-315-465

(平日 10:00~19:00)

グラッドキューブは
「ISMS認証」を取得しています。

認証範囲:
インターネットマーケティング支援事業、インターネットASPサービスの提供、コンテンツメディア事業

「ISMS認証」とは、財団法人・日本情報処理開発協会が定めた企業の情報情報セキュリティマネジメントシステムの評価制度です。

いますぐ無料で
お試しください。

SiTest の革新的な機能を
お試しいただけます。
利用規約

お名前【必須】
メールアドレス【必須】
電話番号【必須】