Node.jsで簡単なAPIサーバーを作る方法

Node.jsでは Express を使うことで簡単にAPIを構築できます。

Expressをインストール

npm install express

サーバーを作成


const express = require('express');

const app = express();

app.get('/', (req, res) => {
    res.send('Hello World');
});

app.listen(3000, () => {
    console.log('Server Start');
});

ブラウザで http://localhost:3000 にアクセスすると表示されます。


JSONを返す

APIではJSONレスポンスを返すことが多いです。

app.get('/api/user', (req, res) => {

    res.json({
        name: 'Taro',
        age: 20
    });

});

POSTリクエストを受け取る

app.use(express.json());

app.post('/api/post', (req, res) => {

    console.log(req.body);

    res.json({
        status: 'success'
    });

});

フロントエンドとの連携で頻繁に使います。

WordPressでお問い合わせフォームをAjax化する方法【初心者向け】

WordPressでお問い合わせフォームを作ると、送信時にページがリロードされることがあります。
しかし、Ajaxを使えばページ遷移なしでフォーム送信が可能になり、UXを改善できます。

今回は、WordPressでAjax通信を利用したフォーム送信を実装する基本的な方法を解説します。


完成イメージ

  • フォーム送信時にページ遷移しない
  • バリデーションエラーをその場で表示
  • 成功時にメッセージ表示
  • 管理画面に依存しない独自実装

フォームHTMLを作成

まずはフォームを作成します。


<form id="contact-form">
    <div>
        <label>名前</label>
        <input type="text" name="username">
    </div>

    <div>
        <label>メールアドレス</label>
        <input type="email" name="email">
    </div>

    <div>
        <label>お問い合わせ内容</label>
        <textarea name="message"></textarea>
    </div>

    <button type="submit">送信</button>
</form>

<p id="result-message"></p>

JavaScriptでAjax送信

次にJavaScriptを実装します。

const form = document.getElementById('contact-form');

form.addEventListener('submit', async (e) => {
    e.preventDefault();

    const formData = new FormData(form);

    try {
        const response = await fetch('/wp-admin/admin-ajax.php', {
            method: 'POST',
            body: formData
        });

        const data = await response.json();

        document.getElementById('result-message').textContent = data.message;

    } catch (error) {
        console.error(error);
    }
});

actionパラメータを追加する

WordPressのAjaxでは action が必須です。

formData.append('action', 'contact_form');

最終的には以下のようになります。

const form = document.getElementById('contact-form');

form.addEventListener('submit', async (e) => {
    e.preventDefault();

    const formData = new FormData(form);

    formData.append('action', 'contact_form');

    try {
        const response = await fetch('/wp-admin/admin-ajax.php', {
            method: 'POST',
            body: formData
        });

        const data = await response.json();

        document.getElementById('result-message').textContent = data.message;

    } catch (error) {
        console.error(error);
    }
});

functions.phpでAjax処理を書く

WordPress側でAjaxリクエストを受け取ります。

function contact_form_ajax() {

    $username = $_POST['username'] ?? '';
    $email = $_POST['email'] ?? '';
    $message = $_POST['message'] ?? '';

    if (empty($username)) {
        wp_send_json([
            'status' => 'error',
            'message' => '名前を入力してください'
        ]);
    }

    if (empty($email)) {
        wp_send_json([
            'status' => 'error',
            'message' => 'メールアドレスを入力してください'
        ]);
    }

    wp_send_json([
        'status' => 'success',
        'message' => '送信が完了しました'
    ]);
}

add_action('wp_ajax_contact_form', 'contact_form_ajax');
add_action('wp_ajax_nopriv_contact_form', 'contact_form_ajax');

セキュリティ対策も重要

Ajax実装時は以下も必須です。

sanitizeする

$username = sanitize_text_field($_POST['username']);
$email = sanitize_email($_POST['email']);

nonceチェック

check_ajax_referer('contact_nonce', 'nonce');

JavaScript側:

formData.append('nonce', contactData.nonce);

よくあるハマりポイント

admin-ajax.php が404になる

パーマリンク設定更新で解決する場合があります。


JSON.parse エラー

PHPのwarningやnoticeが混ざっている可能性があります。

ini_set('display_errors', 0);

ただし本番環境では適切なログ管理を行いましょう。


REST APIとの違い

最近は admin-ajax.php よりもREST APIを利用するケースも増えています。

比較admin-ajaxREST API
学習コスト低いやや高い
WordPressらしさ高いAPI寄り
パフォーマンスやや重い比較的軽い
将来性普通高い

小規模フォームなら admin-ajax.php でも十分実用的です。


まとめ

WordPressのAjax化を行うことで、フォームのUXを大きく改善できます。

今回のポイント:

  • admin-ajax.php を利用する
  • action を必ず送る
  • wp_ajax_ / wp_ajax_nopriv_ を設定
  • sanitize と nonce を忘れない
  • エラー処理を丁寧に行う

特に独自テーマ開発では、Ajax実装はかなり頻繁に使うので、早めに慣れておくと開発効率が上がります。

Pythonが人気な理由

Pythonは、初心者からプロまで幅広く使われている人気のプログラミング言語です。

人気の理由は「シンプルで読みやすいこと」。
例えば、少ないコードで処理を書けるため、学習コストが低いと言われています。

for i in range(5):
    print(i)

また、Pythonは用途が非常に広く、

  • Web開発
  • AI・機械学習
  • データ分析
  • 自動化ツール

など、さまざまな分野で活躍しています。

特に近年はAIブームの影響もあり、Pythonを学び始める人がさらに増えています。

これからプログラミングを始めるなら、Pythonはかなり有力な選択肢の一つです。

Reactを使って感じた「コンポーネント設計」の大切さ

フロントエンド開発をしていると、ReactやVueなどのライブラリを使う機会が増えています。
その中でも特に重要だと感じるのが、「コンポーネント設計」です。

最初のうちは動けばOKになりがちですが、アプリが大きくなるほど設計の差が効いてきます。


コンポーネントを分けるメリット

例えばECサイトを作る場合、

  • 商品カード
  • ヘッダー
  • ボタン
  • モーダル

などを部品化できます。

Reactではこんな感じです。

function ProductCard({ product }) {
  return (
    

{product.name}

{product.price}円

) }

こうしておくと、同じUIを何度も再利用できます。


「使い回せる設計」が重要

初心者の頃は、1画面ごとに全部書いてしまいがちです。

しかし実務では、

  • デザイン変更
  • 機能追加
  • バグ修正

が頻繁に発生します。

そのため、再利用しやすい構造にしておくことで開発効率が大きく変わります。


コンポーネントを細かく分けすぎる問題

ただし、細かく分割しすぎるのも問題です。

例えば:

  • ButtonText
  • ButtonIcon
  • ButtonWrapper

のように過剰分割すると、逆に読みにくくなることがあります。

重要なのは「責務」で区切ることです。


状態管理はシンプルが最強

Reactでは state 管理が重要ですが、複雑になりすぎるケースも多いです。

例えば:

const [isLoading, setIsLoading] = useState(false)
const [error, setError] = useState(null)
const [users, setUsers] = useState([])

これくらいなら分かりやすいですが、状態が増えすぎると管理が大変になります。

最近では、

  • Zustand
  • Jotai
  • Redux Toolkit

なども人気です。

ただ、小規模開発なら useStateuseContext だけで十分なケースも多いです。


フロントエンドは“見た目”だけではない

フロントエンドというとデザイン寄りの印象がありますが、実際はかなりロジック寄りです。

例えば:

  • API通信
  • キャッシュ
  • パフォーマンス最適化
  • 認証管理
  • SEO対策

など、考えることは多岐にわたります。


まとめ

Reactは便利なライブラリですが、重要なのは「どう設計するか」です。

特に、

  • 再利用性
  • 可読性
  • 状態管理
  • 責務分離

を意識すると、後から保守しやすいコードになります。

フロントエンド開発は変化が激しいですが、設計の基本は長く役立つスキルだと感じます。

2026年でも変わらない「読みやすいコード」の考え方

プログラミングの世界では、新しいフレームワークやライブラリが次々に登場します。
しかし、どれだけ技術が進化しても、「読みやすいコードを書く」という基本は変わりません。

実際、開発現場で問題になるコードの多くは、「高度すぎるアルゴリズム」ではなく、あとから読めないコードです。

なぜ“読みやすさ”が重要なのか

コードは「書く時間」より「読む時間」の方が圧倒的に長いと言われています。

例えば、以下のようなコード。

const a=(b,c)=>b.filter(d=>d.id===c)[0]

短くはありますが、意図が伝わりづらいです。

一方で、少し丁寧に書くとどうでしょう。

const findUserById = (users, targetId) => {
  return users.find(user => user.id === targetId)
}

こちらの方が、初めて見る人でも理解しやすくなります。

読みやすいコードを書く3つのポイント

1. 変数名を省略しすぎない

a, tmp, data2 のような名前は避け、役割が分かる名前を使いましょう。

悪い例:

x = get()

良い例:

user_list = get_users()

2. 関数を長くしすぎない

100行を超える関数は、責務が混ざっている可能性があります。

例えば:

  • データ取得
  • バリデーション
  • DB保存
  • ログ出力

これらを1つの関数でやると保守が大変になります。

処理ごとに分割すると、テストもしやすくなります。

3. コメントを書きすぎない

意外かもしれませんが、「コメントが多いコード = 良いコード」ではありません。

// ユーザーを取得する
const user = getUser()

これはコードを読めば分かります。

コメントを書くべきなのは、

  • なぜその実装にしたのか
  • 回避したいバグ
  • 特殊な仕様

など、“背景”です。

AI時代だからこそ設計力が重要

最近ではAIがコードを書く時代になりました。

ただ、AIが生成したコードをレビューし、保守し、改善するのは人間です。

そのため今後は、

  • コードを書く力
  • コードを読む力
  • システム全体を設計する力

がより重要になっていくでしょう。

まとめ

プログラミングでは、最新技術を追うことも大切ですが、それ以上に「他人が理解できるコードを書く」ことが重要です。

読みやすいコードは、

  • バグを減らし
  • チーム開発を円滑にし
  • 将来の自分を助けます

派手ではありませんが、長く使われるシステムほど、こうした基本がしっかりしています。

今日から少しだけ、「未来の自分が読みやすいか?」を意識してコードを書いてみてください。

Pythonで「とりあえず動く」を卒業するための3つの考え方

プログラミングを始めたばかりの頃は、「動けばOK」が正義になりがちです。
実際、それは間違っていません。まずは完成させることが大事です。

ただ、ある程度コードを書くようになると、次の壁にぶつかります。

  • 数日後に自分のコードが読めない
  • 修正したら別の場所が壊れる
  • コピペが増えていく
  • 「なんとなく動いている」状態になる

この記事では、Pythonを例にしながら、「とりあえず動くコード」から一歩進むための考え方を3つ紹介します。


1. 「同じ処理」は関数にする

初心者のコードでよくあるのが、同じような処理を何回も書いてしまうことです。

例えばこんなコード。

print("田中さんの合計点")
print(80 + 70 + 90)

print("佐藤さんの合計点")
print(60 + 75 + 88)

最初はこれでも問題ありません。
でも人数が増えたら、かなり面倒になります。

そこで関数を使います。

def total_score(name, a, b, c):
    total = a + b + c
    print(f"{name}さんの合計点: {total}")

total_score("田中", 80, 70, 90)
total_score("佐藤", 60, 75, 88)

ポイントは、「変更箇所を減らせる」こと。

あとから仕様変更があっても、関数の中だけ直せば済みます。


2. 変数名は「未来の自分へのメモ」

変数名を atmp にし続けると、あとでかなり苦労します。

例えば以下。

a = 1200
b = 0.1
c = a * b

数分後には「これ何の計算だっけ?」になります。

意味が分かる名前にすると、一気に読みやすくなります。

price = 1200
tax_rate = 0.1
tax = price * tax_rate

コードは「書く時間」より、「読む時間」のほうが長いです。

つまり、読みやすさはかなり重要です。


3. エラーは「敵」じゃなくて「情報」

初心者の頃は、エラーが出ると焦ります。

でも実際には、エラーはかなり親切です。

例えば:

実行すると:

numbers = [1, 2, 3]
print(numbers[5])
IndexError: list index out of range

これは「リストの範囲外を読もうとしてるよ」と教えてくれています。

エラーメッセージを読む習慣がつくと、成長速度がかなり変わります。

特に重要なのはこの2つ。

  • エラー名
  • 最後の1行

最初は英語が苦手でも、慣れるとパターンが見えてきます。


「コードを書く」より「整理する」が大事になる

プログラミング学習では、「どれだけ難しいことを知っているか」に意識が向きがちです。

でも実務に近づくほど重要になるのは、

  • 読みやすい
  • 修正しやすい
  • 壊れにくい

こういう設計です。

アルゴリズムも大事ですが、まずは「未来の自分が困らないコード」を意識するだけで、かなり変わります。


まとめ

「とりあえず動く」を卒業するためのポイントはこの3つ。

  1. 同じ処理は関数化する
  2. 変数名を分かりやすくする
  3. エラーを読む習慣をつける

派手なテクニックではありません。
でも、このあたりを意識できるようになると、コードの品質はかなり上がります。

プログラミングは、「書く量」だけじゃなく、「どう整理するか」が面白い世界です。

【重要】サイト表示テスト実施のお知らせ

平素より当サービスをご利用いただき誠にありがとうございます。
現在、システムの安定性および表示品質向上のため、WordPress環境におけるテスト投稿を実施しております。

実施目的

本テストは以下の確認を目的としております。

  • フロント表示の崩れ有無
  • CSS適用状況の確認
  • 各デバイスでのレスポンシブ動作
  • 投稿一覧・詳細ページの表示整合性

テスト内容について

本記事に含まれる内容はすべてダミーデータです。
実際のサービス提供内容、企業情報、または告知事項とは一切関係ありません。

動作確認項目

現在、以下の項目について検証を行っています。

  • 見出しデザインの適用
  • リンクスタイルの表示
  • 文字間・行間の調整
  • 画像ブロックの配置(必要に応じて)
  • モバイル表示の最適化

注意事項

本投稿はテスト目的であり、予告なく削除または非公開となる場合があります。
また、本件に関する個別のお問い合わせには対応しておりません。

今後の対応

引き続き、表示品質およびユーザビリティ向上のため、定期的な検証を実施してまいります。

何卒ご理解のほどよろしくお願い申し上げます。

お知らせ:システム動作テスト投稿

平素より当サイトをご利用いただきありがとうございます。
本記事は、WordPress環境における表示・レイアウト確認のためのテスト投稿です。

概要

本投稿では、以下の要素が正常に動作しているかを確認しています。

  • 見出し構造(H2 / H3)の表示
  • 段落・改行のレイアウト
  • 画像・リンクの表示(※必要に応じて追加)
  • スマートフォン表示の最適化
  • テーマ適用状況の確認

サンプルコンテンツ

当社では、ユーザー体験の向上を目的として、継続的なシステム改善を行っております。

本テストはその一環として実施されており、実際のサービス提供内容とは関係ありません。

また、表示確認のためダミーデータを含んでおります。

更新情報(テスト)

  • 2026/05/19:初回テスト投稿を実施
  • 2026/05/19:表示崩れなし(確認中)
  • 2026/05/19:リンク動作確認予定

重要なお知らせ

本記事はテスト用途のため、公開後は非公開または削除される場合があります。

また、本内容に関するお問い合わせには対応いたしかねますので、あらかじめご了承ください。

まとめ

WordPress環境の基本動作は正常に機能していることを想定しています。
今後も安定した運用のため、定期的な検証を実施してまいります。