ReactとNode.jsの連携方法


  1. プロジェクトのセットアップ: まず、ReactとNode.jsを連携させるためには、プロジェクトのセットアップが必要です。以下の手順に従ってください。
  • create-react-appを使用してReactプロジェクトを作成します。
    npx create-react-app my-app
  • Node.jsのパッケージマネージャーであるnpmを使用して、Node.jsプロジェクトを初期化します。
    mkdir my-app-server
    cd my-app-server
    npm init -y
  1. フロントエンドとバックエンドの通信: ReactアプリケーションとNode.jsサーバーの間でデータを送受信するために、以下の方法を使用することができます。
  • REST API: Node.jsサーバーがRESTfulなAPIを提供し、ReactアプリケーションはHTTPリクエストを使用してデータを取得・送信します。axiosやfetchなどのライブラリを使用すると便利です。

  • GraphQL: GraphQLは、フロントエンドとバックエンドの間でデータを効率的にやり取りするためのクエリ言語です。Apollo Clientを使用すると、ReactアプリケーションからGraphQLサーバーに対してクエリを送信できます。

  1. フロントエンドとバックエンドの連携の例: 以下に、ReactとNode.jsの連携の一例を示します。
  • フロントエンド (React) の例:
import React, { useEffect, useState } from 'react';
const App = () => {
  const [data, setData] = useState([]);
  useEffect(() => {
    fetch('/api/data') // バックエンドのエンドポイントにリクエストを送信
      .then(response => response.json())
      .then(data => setData(data));
  }, []);
  return (
    <div>
      {data.map(item => (
        <p key={item.id}>{item.name}</p>
      ))}
    </div>
  );
};
export default App;
  • バックエンド (Node.js) の例:
const express = require('express');
const app = express();
app.get('/api/data', (req, res) => {
  const data = [
    { id: 1, name: 'Item 1' },
    { id: 2, name: 'Item 2' },
    { id: 3, name: 'Item 3' }
  ];
  res.json(data);
});
app.listen(3001, () => {
  console.log('Server is running on port 3001');
});

上記の例では、Reactアプリケーションが/api/dataエンドポイントにリクエストを送信して、バックエンドのNode.jsサーバーがデータを返します。フロントエンドでは、取得したデータを表示しています。

これらはReactとNode.jsの連携の一部に過ぎません。他にもさまざまな方法があります。また、データベースの統合や認証、セキュリティなどのトピックもあります。しかし、この記事では基本的な連携方法とコード例を紹介しました。ReactとNode.jsの組み合わせにより、フルスタックのウェブアプリケーションを開発することができます。ぜひこれらの情報を活用して、自身のプロジェクトでReactとNode.jsを連携させてみてください。