【Node.js】ExpressでREST APIsをセッティングする
Node.js

【Node.js】ExpressでREST APIsをセッティングする

作成日:2021年11月06日
更新日:2021年11月07日

Express で REST APIs をセッティングします。

サーバーをセッティングする

まずは、ターミナルでnpm initを実行します。

次に、ターミナルでnpm install --save express body-parserを実行して、Express と body-perser をインストールします。

また、サーバーを自動で更新するために、ターミナルでnpm install --save-dev nodemonを実行して、Express と nodemon をインストールします。

npm startで nodemon が実行できるように、package.json の script の内容を修正します。

json
"scripts": {
"start": "nodemon index.js"
},

inde.js を作成し、expressを呼び出します。

js
const express = require("express");
const app = express();

listen を使って、サーバーが立ち上がる様にします。

js
app.listen(8000, () => console.log("Server is running ..."));

ターミナルでnpm startを実行して、サーバーを起動してみます。

image2

サーバーが起動しました。

データを取得する

次に、サーバーのデータを取得してみます。

ルート処理するために、routes フォルダを作成し、その中に book.js を作成します。

expressを呼び出します。

js
const express = require("express");

expressRouterを使います。

js
const router = express.Router();

routerをエクスポートしましょう。

js
module.exports = router;

次に、データを処理するために、コントローラーを作成します。

controllers フォルダを作成し、その中に、book.js を作成します。

getBook を作成し、その中に JSON データを入れます。

js
exports.getBook = (req, res, next) => {
res.json({
books: [
{
id: "aaaaaa",
title: "オズの魔法使い",
content: "前に進んでいったら、何とかなるという話。",
},
],
});
};

ステータスコードも送信する様にします。

js
exports.getBook = (req, res, next) => {
res.status(200).json({
books: [
{
id: "aaaaaa",
title: "オズの魔法使い",
content: "前に進んでいったら、何とかなるという話。",
},
],
});
};

routes フォルダの book.js に戻り、コントローラーと繋げます。

js
const bookController = require("../controllers/book");
router.get("/get", bookController.getBook);

index.js で、router と繋げましょう。

js
app.use("/book", bookRoutes);

一度確認するために、http://localhost:8000/book/get を開きます。

image3

ブラウザに、コントローラーで設定したデータが表示されました。

Postman を使って、GET データを確認してみると、

image4

Status200 が返ってきて、データも取得できています。

データを送信する

次は、POST でデータを送信してみます。

controllers フォルダの book.js を開きます。

postBook を作成し、データを送信する内容を書いていきます。

js
exports.postBook = (req, res, next) => {};

リクエストから title を content を取得します。

js
exports.postBook = (req, res, next) => {
const title = req.body.title;
const content = req.body.content;
};

送信できた場合のメッセージと、送信データ内容を書きます。

id は、ランダムの文字列にします。

js
exports.postBook = (req, res, next) => {
const id = (Math.random() + 1).toString(36).slice(2, 8);
const title = req.body.title;
const content = req.body.content;
res.json({
message: "Data transmission completed!",
post: { id: id, title: title, content: content },
});
};

送信できた場合のステータスコードを追加します。

js
exports.postBook = (req, res, next) => {
const id = (Math.random() + 1).toString(36).slice(2, 8);
const title = req.body.title;
const content = req.body.content;
res.status(201).json({
message: "Data transmission completed!",
post: { id: id, title: title, content: content },
});
};

送信コントローラーが完成しました。

routes フォルダの book.js を開きます。

getの場合と同様に、postpostBookを実行できる様にします。

js
router.post("/post", bookController.postBook);

index.js で body-parser を呼び出します。

js
const bodyParser = require("body-parser");

json を解析できるように、body-parser を使用します。

js
app.use(bodyParser.json());

これで一通り完成しましたので、Postman で確認してみます。

image5

実行すると、

image6

Status201 が返ってきて、メッセージと送信内容が表示されました。

© 2024あずきぱんウェブスタジオ