Node.js
Express

Expressを用いた簡単なAPIの作り方 まとめ


概要

Expressを用いたNode.jsサーバにより、簡単なAPIを作る方法をまとめたいと思います。

おそらく、Expressだけで動作するアプリを作る人はいないかと思いますので、それぞれ自分の環境にライブラリを入れていただく形になるかと思います。


使用例


Node.jsとは

Node.js

https://nodejs.org/ja/

Node.js® は、Chrome の V8 JavaScript エンジン で動作する JavaScript 環境です。

Node.js は、軽量で効率的に動作する非同期型のイベント駆動モデルを採用しています。

Node.js のパッケージ管理マネージャである npm は、世界で最も大きなオープンソースのライブラリエコシステムです。


Expressとは

Express.js

http://expressjs.com/ja/

Express は、Web アプリケーションとモバイル・アプリケーション向けの一連の堅固な機能を提供する最小限で柔軟な Node.js Web アプリケーション・フレームワークです。


手順

任意のディレクトリを作りましょう。

ここではexpress-node-exampleとします。

$ mkdir express-node-example

ディレクトリへ移動しましょう。

$ cd express-node-example

node.jsを用いるためにnpmをinitします。

$ npm init

Expressをインストールします。

$ npm install express --save


プログラムを記述

メインで走らせるプログラムと、それぞれのURLで実行するプログラムを別々にしたほうがいいと思います。

ここでは、express-example.jsにAPIのルーティングを、express-exports.jsに実行内容を記述していきたいと思います。


express-example.js

//expressを使用するのでその設定

const express = require('express');
const bodyParser = require('body-parser');
const app = express();
//処理を記述した外部ファイルを参照
var export_func = require("./express-exports");

// urlencodedとjsonは別々に初期化
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json());
//listenします。カッコ内の数字を変更することで解放するポート番号を変更できます。
app.listen(3000);
//確認のためコンソールに出力します。
console.log('Server is online.');
//app.getでGETすることができます。最初の引数を変更することでURLが変更できます。二つ目が実行内容です。
app.get('/get-example', function(req, res) {
export_func.get_example();
})
//app.getでPOSTすることができます。最初の引数を変更することでURLが変更できます。二つ目が実行内容です。
app.post('/post-example', function(req, res) {
export_func.post_example(req.id, req.name);
})



express-exports.js

//出力用のjsonを作成します。

var json_example = [
{
"id": "1",
"name": "example_json_1",
},{
"id": "2",
"name": "example_json_2"
}
]
//GETの例です。jsonの中身を出力します。
exports.get_example=function(res, req, next){
res.json(json_example);
}
//POSTの例です。jsonにデータを追加することができます。
exports.post_example = function(id, name) {
json_example = [
{
"id": id,
"name": name
}
]
}



プログラムを実行

$ node stripe-express.js

でnode.jsサーバを立ち上げます。

別のコンソールにおいて下記のコマンドを実行します。


GET

$ curl -X GET http://localhost:3000/get-example'


POST

$ curl -X POST http://localhost:3000/post-example -H "Accept: application/json" -H "Content-type: application/json" -d '{ "id" :"3" "name":"example_json3"}'

'{ "id" :"3" "name":"example_json3"}'という部分を変更することで。POSTする内容を変更することができます。