0Pricing
Node.js Backend Development Bootcamp · レッスン

Expressのルーティングとミドルウェア

Expressのルーティングを使ってAPIエンドポイントを定義し、リクエスト処理用のミドルウェアを実装する方法を学びます。

「Expressのルーティングとミドルウェア」はCoddyKit上の無料Node.js Backend Development Bootcampレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはNode.js Backend Development Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Node.js Backend Development Bootcampコースには全4レッスンが含まれています。

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

Routing Your Express API

Welcome back! In this lesson, we'll dive into routing and middleware in Express. These are core concepts for building powerful and organized web applications.

Routing helps your server understand what to do when it receives different requests, like showing a user profile or saving new data.

Defining Basic Routes

A route tells your Express app how to respond to a specific type of request to a particular URL path. You define routes using methods like app.get(), app.post(), app.put(), and app.delete().

Each route method takes a path and a handler function that executes when the route is matched.

First GET Route Example

Let's create a simple GET route that responds to requests at the root URL (/). This is often your homepage or a basic API status check.

The handler function receives req (request) and res (response) objects.

const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Hello from our Express API!');
});

app.listen(port, () => {
  console.log(`Server running on http://localhost:${port}`);
});

Handling Dynamic Route Parameters

Often, you need to capture dynamic values from the URL, like a user's ID. This is done with route parameters, denoted by a colon (:) in the path.

You can access these parameters through the req.params object in your route handler.

const express = require('express');
const app = express();
const port = 3000;

app.get('/users/:userId', (req, res) => {
  const userId = req.params.userId;
  res.send(`You requested user ID: ${userId}`);
});

app.listen(port, () => {
  console.log(`Server running on http://localhost:${port}`);
});

What is Middleware?

Middleware functions are functions that have access to the request object (req), the response object (res), and the next middleware function in the application’s request-response cycle.

They can:

  • Execute any code.
  • Make changes to the request and the response objects.
  • End the request-response cycle.
  • Call the next middleware function in the stack.

The 'next()' Function

The key to middleware is the next() function. If a middleware function does not end the request-response cycle (e.g., by calling res.send()), it must call next() to pass control to the next middleware function or route handler.

If next() is not called, the request will be left hanging.

Application-level Middleware

You can apply middleware globally to all requests using app.use(). This is great for tasks like logging, parsing JSON bodies, or setting common headers.

Let's create a simple logger that runs for every incoming request.

const express = require('express');
const app = express();
const port = 3000;

// Application-level middleware
app.use((req, res, next) => {
  console.log(`[${new Date().toISOString()}] ${req.method} ${req.url}`);
  next(); // Don't forget to call next()
});

app.get('/', (req, res) => {
  res.send('Check your server console for the log!');
});

app.listen(port, () => {
  console.log(`Server running on http://localhost:${port}`);
});

Route-level Middleware

Sometimes, you only want middleware to run for specific routes. You can apply route-level middleware by passing it as an argument before the route handler function.

You can even chain multiple middleware functions for a single route.

const express = require('express');
const app = express();
const port = 3000;

// A simple authentication middleware
const isAuthenticated = (req, res, next) => {
  if (req.headers.authorization === 'Bearer mysecrettoken') {
    next(); // User is authenticated, proceed
  } else {
    res.status(401).send('Unauthorized: Invalid token');
  }
};

// Apply isAuthenticated middleware only to this route
app.get('/dashboard', isAuthenticated, (req, res) => {
  res.send('Welcome to the protected dashboard!');
});

app.get('/', (req, res) => {
  res.send('Public content here.');
});

app.listen(port, () => {
  console.log(`Server running on http://localhost:${port}`);
});

Common Middleware Uses

Middleware is incredibly versatile. Here are some common use cases:

  • Authentication/Authorization: Checking user credentials or permissions.
  • Logging: Recording request details for debugging or monitoring.
  • Body Parsing: Extracting JSON or URL-encoded data from request bodies (e.g., express.json()).
  • Error Handling: Catching and responding to errors (special middleware type).
  • Input Validation: Ensuring request data meets specific criteria.

Middleware & Routing Check

Let's test your understanding of Express routing and middleware!

Recap: Routing & Middleware

Great job! You've learned how Express uses routing to direct requests to specific handlers based on URL paths and HTTP methods.

You also mastered middleware, powerful functions that can intercept and process requests at various stages, either globally with app.use() or for specific routes. Understanding these concepts is fundamental to building robust Express applications!

よくある質問

「Expressのルーティングとミドルウェア」レッスンは無料ですか?

はい。「Expressのルーティングとミドルウェア」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Node.js Backend Development Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Node.js Backend Development Bootcampコースには全4レッスンが含まれています。

「Expressのルーティングとミドルウェア」で何を学びますか?

Expressのルーティングを使ってAPIエンドポイントを定義し、リクエスト処理用のミドルウェアを実装する方法を学びます。 ブラウザで直接実行するハンズオンコードでNode.js Backend Development Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Node.js Backend Development Bootcampを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのNode.js Backend Development Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「Expressのルーティングとミドルウェア」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このNode.js Backend Development Bootcampレッスンでコードを書いて実行できますか?

はい。すべてのNode.js Backend Development Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Express.jsフレームワークの基礎
  2. Expressのルーティングとミドルウェア
  3. RESTful APIエンドポイントを設計する
  4. リクエストデータの処理:Body、Query、Params
← Node.js Backend Development Bootcampに戻る