はじめに
このプロジェクトでは、Node.js を使って簡単なニュース API を作成する方法を学びます。サーバーを作成し、異なるルートを処理し、特定の形式でニュースデータを返す方法を学びます。
👀 プレビュー
curl http://localhost:8080/news
## 出力:
## [{"channelId":"5572a108b3cdc86cf39001cd","name":"National Focus"},{"channelId":"5572a108b3cdc86cf39001ce","name":"International Focus"}]
curl http://localhost:8080
## 出力:
## 404
🎯 タスク
このプロジェクトでは、以下のことを学びます。
- Node.js を使ってサーバーを作成する方法
/newsルートを処理し、ニュースデータを返す方法- その他のルートを処理し、404 レスポンスを返す方法
🏆 成果
このプロジェクトを完了すると、以下のことができるようになります。
- Node.js を使ってサーバーを作成する基本を理解する
- ニュースデータを返す簡単な API を実装する
- 異なるルートを処理し、適切なレスポンスを提供する
サーバーを作成する
始めるには、エディタを開きます。エディタから「app.js」というファイルが表示されるはずです。
このステップでは、Node.js を使ってサーバーを作成する方法を学びます。以下の手順に従ってこのステップを完了しましょう。
コーディング環境で「app.js」ファイルを開きます。
サーバーを作成する機能を提供する「http」モジュールをインポートします。
const http = require("http");createServer()メソッドを使って新しいサーバーを作成します。const serve = http.createServer();サーバーにイベントリスナーを追加して、着信リクエストを処理します。
serve.on("request", (req, res) => { // TODO: リクエストを処理するコードを追加する });サーバーを起動し、ポート 8080 で待ち受けます。
serve.listen(8080, () => { console.log("The service has been started!"); });
/news ルートを処理する
このステップでは、/news ルートを処理してニュースデータを返す方法を学びます。以下の手順に従ってこのステップを完了しましょう。
リクエストイベントリスナーの中で、レスポンスヘッダを
utf8形式で使用するように設定します。res.setHeader("Content-type", "text/html;charset=utf8");要求された URL を確認します。
if (req.url == "/news") { // /news ルートを処理する } else { // その他のルートを処理する }必要な形式でニュースデータを準備します。
const data = [ { channelId: "5572a108b3cdc86cf39001cd", name: "National Focus" }, { channelId: "5572a108b3cdc86cf39001ce", name: "International Focus" } ];ニュースデータをレスポンスとして送信します。
res.end(JSON.stringify(data));
その他のルートを処理する
このステップでは、/news でないその他のルートを処理する方法を学びます。
リクエストイベントリスナーの中で、その他のルートを処理するための
elseブロックを追加します。if (req.url == "/news") { // /news ルートを処理する //... } else { // その他のルートを処理する res.end("404"); }elseブロックで、要求されたルートが見つからないことを示す404レスポンスを送信します。
この時点で、あなたの app.js ファイルはこのようになっているはずです。
const http = require("http");
const serve = http.createServer();
serve.on("request", (req, res) => {
// TODO: リクエストを処理するコードを追加する
res.setHeader("Content-type", "text/html;charset=utf8");
console.log(req.url);
if (req.url == "/news") {
const data = [
{
channelId: "5572a108b3cdc86cf39001cd",
name: "National Focus"
},
{
channelId: "5572a108b3cdc86cf39001ce",
name: "International Focus"
}
];
res.end(JSON.stringify(data));
} else {
res.end("404");
}
});
serve.listen(8080, () => {
console.log("The service has been started!");
});
サーバーをテストする
ターミナルで以下のコマンドを使ってサーバーを起動します。
node app.js再度新しいターミナルを開き、以下のコマンドでターミナルが正しいことを確認します。
curl http://localhost:8080/news
## 出力:
## [{"channelId":"5572a108b3cdc86cf39001cd","name":"National Focus"},{"channelId":"5572a108b3cdc86cf39001ce","name":"International Focus"}]
curl http://localhost:8080
## 出力:
## 404
おめでとうございます!Node.js を使ってニュース API を成功裏に作成しました。
まとめ
おめでとうございます!このプロジェクトを完了しました。実力を向上させるために、LabEx でさらに多くの実験を行って練習してください。



