Node.js 3 分デベロップ

うにょーん(ワイルドカード的挨拶)。りひにーです。
今日は Node.js 3 分デベロップと題して、Matrix protocol 的なやつのバージョンを返すやつを Node.js で作ってみようと思います。

yarn で必要なモジュールをいんすとろーるする

yarn で必要なモジュールないしはパッケージをいんすとろーる*1します。

% yarn add express body-parser

簡単ですね!

必要なやつを require する

今度はいんすとろーるしたやつを require します。

const express    = require( 'express' );
const bodyParser = require( 'body-parser' );

express()

express() してなんらかのオブジェクトをとってきます。
なんらかのオブジェクトは app という const な変数にとっておきましょう。 後で使います。
なんで const かというと、活きがいいので危険だからです。(とっても安全です)

const app        = express();

body-parser の設定をしちゃう

body-parser の設定をしちゃいます。
先程とっておいた活きのいい app を使います。
気になる人は水中メガネかなんかをしておいた方が良いですよ!
水が跳ねますからね!(跳ねない)

// body-parser の設定をするよ!するよ!
app.use( bodyParser.urlencoded( { extended: true } ) );
app.use( bodyParser.json() );

ここら辺でポート番号を考えておく

ここら辺で一休みしてポート番号を考えておきます。
とりあえず、3000 にしておきましょう。
キリがいいし、なんだか新しい感じがするからです。(バイアス)

// ここら辺でポート番号を宣言しておく。
const port       = process.env.PORT || 3000;

バージョンを返すやつを定義する

お待ちかね今日のメインディッシュ、バージョンを返すやつを定義します。
よくこことにらめっこしましょう。

// GET /${domain}:${port}/_matrix/client/versions
app.get( '/_matrix/client/versions', (request, response) => {
    response.json( {
        versions: 'r0.0.1'
    } );
} );

鯖を起動する

バージョンを返すやつを定義したので、鯖を起動します。

// ルートを定義したので、鯖を起動するよ!!
app.listen( port );

console.log( 'listen on port: %d', port );

ここまでを app.js という名前で保存しておきましょう。

テストってみる

それでは、テストってみましょう。
今まで書いたコードが上手く書かれていれば、うまい具合にバージョンが返ってくるはずです。
それにはこんな風に打ちます:

% node ./app.js

そして、別のターミナルエミュレーターを起動し、以下のように打ちます:

% curl -XGET http://localhost:3000/_matrix/client/versions

どうですか?
バージョンが返ってきましたか?

(๑´ڡ`๑) おしまい

*1:インストール