blog-hero-img

はじめてつくるバックエンドサーバー発展編【改訂版発売】

pen-icon2024.9.12

この記事は約3分で読めます

Profile Pic

この記事の筆者:三好アキ


🔹 専門用語なしでプログラミングを教えるメソッドに定評があり、1200人以上のビギナーを、最新のフロントエンド開発入門に成功させる。

🔹 Amazonベストセラー1位を複数回獲得している『はじめてつくるReactアプリ with TypeScript』著者。


Amazon著者ページはこちら → amazon.co.jp/stores/author/B099Z51QF2



React、Next.js、TypeScriptなどのお役立ち情報や実践的コンテンツを、ビギナー向けにかみ砕いて無料配信中。登録はこちらから → 無料メルマガ登録

2年ぶりのアップデート

『はじめてつくるバックエンドサーバー発展編(Node.js & Express & MongoDB)』の改訂版を発売しました。

電子書籍とペーパーバック、両方でご利用いただけます。

はじめてつくるバックエンドサーバー発展編(Node.js & Express & MongoDB)

【2024年9月改訂版リリース。ログイン機能を持った本格的なNode.jsアプリ開発を、ビギナー向けにわかりやすく解説】

2069円0円

Amazonのページに移動する

改訂の理由

『はじめてつくるバックエンドサーバー発展編』を書いたのは2022年4月なので、発売からすでに2年半ほど経っていました。

2年半といえば、npmパッケージのバージョンが上がり、コードの書き方が変わっていてもおかしくはない時間の長さです。

実際、書籍内で使っているコードで動かないところが出ており、Amazonのレビューのコメント欄でもその点に触れたものがありました。

コードの変更点

コード上の変更点は、書籍内で使っているmongoose関係のコードです。

2年半前の初版執筆時、mongooseのバージョンは6.2.9で、次のように書いていました。

// 初版のコード

app.post("/blog/create", (req, res) => {
    BlogModel.create(req.body, (error, savedBlogData) => {
        if(error){
            res.render("error", {message: "/blog/createのエラー"})
        }else{
            res.redirect("/")
        }
    })     
})

しかし最新のmongooseはバージョンが8.6.1で、上のようなcallbackは使えなくなっており、「MongooseError: Model.create() no longer accepts a callback」といったエラーが出ます。

そこでcallbackベースのアプローチから、promiseベースのアプローチに変え、then()を使った記法に変えました。

// 改訂版のコード

app.post("/blog/create", (req, res) => {
    BlogModel.create(req.body) 
        .then(() => {
            res.redirect("/") 
        })
        .catch((error) => {
            res.render("error", {message: "/blog/createのエラー"}) 
        })
})     

実はここでthen()を使うべきか、それとももっとモダンなtry ~ catchを使うべきかで迷ったのですが、私の他の書籍(「MERNでつくるフルスタックアプリ」など)ではtry ~ catchをよく使っているので、私の本を複数読まれている読者が触れるコードのバリエーションを増やすため、この本ではあえてthen()で書きました。

時間のかかったこと

コードの変更があるとはいえ、その規模はそこまで大きくないので、改訂版の作業もすぐに終わると思っていました。

しかし実際には予想以上に時間がかかったのは、コードの変更作業ではなく、文章の修正に時間を取られたからです。

2年半も経っていると私の言葉づかいも変わっており、いま読み返すと「おかしな日本語だな」と感じるところが多々ありました。

この本は技術書なので、文章の正しさだとか言葉づかいだとかに過度に注目する人はいないと思います。

それでも書き手としては、そういう「些細な点」が気になり、修正するところが多くあったのです。

すべての部分を直すと終わらないので、平均以上に気になるところしか修正していませんが、それでも初版よりは幾分まともな文章になったかと思います。

コード、文章以外では、書籍内で使っているMongoDBとRenderのウェブサイトのUIが変わっており、その画像の変更にも意外と時間がとられました。

うれしかったこと

先日、X(Twitter)で次のようなポストを見かけました。

image

https://x.com/OUC_Library/status/1830841332870586418

電子書籍版もペーパーバック版も、個人の方が購入・利用するものだと私は考えていたので、図書館のような公共機関に購入していただいているとは思っていませんでした。

手に触れられず共有もできない電子書籍ではなく、物理的な「モノ」としてのペーパーバックには、こういう強みもあるんですね。

そして大学の図書館という、若い学生の方たちが無料で読める環境に私の本があることもうれしく思いました。

私自身学生の時には、1000円、いや500円の文庫本を買うのにもためらいを覚えていたので、このように大学図書館に購入いただいたことで、間接的にも学生の方たちの助けになればと思っています。

目次

はじめてつくるバックエンドサーバー発展編(Node.js & Express & MongoDB)

【2024年9月改訂版リリース。ログイン機能を持った本格的なNode.jsアプリ開発を、ビギナー向けにわかりやすく解説】

2069円0円

Amazonのページに移動する

• 第1章 基礎編

JSONデータの整形

ウェブサイトとウェブアプリケーションの違い

フロントエンドとバックエンドの違い

ウェブアプリケーションが実行する操作(CRUD)

• 第2章 ブログ機能作り

フォルダとファイルの作成

package.jsonの作成

ブログのデータ作成機能

MongoDBのセットアップ

MongoDBにデータを書き込む

MongoDBのデータを読み取る(すべての記事データ)

MongoDBのデータを読み取る(記事データを1つ)

MongoDBのデータを修正する

MongoDBのデータを削除する

補足(修正と削除にPOSTリクエストを使う理由)

データをブラウザで表示・操作する

ブログデータをMongoDBに保存する

• 第3章 ログイン機能作り

ユーザー登録機能

ログイン機能

ログイン状態を維持する(セッション)

コードの整理とCSS

• 第4章 デプロイ

デプロイの準備

Gitのダウンロード

Renderのセットアップ

Renderへのデプロイ

• 第5章 ブラッシュアップ

存在しないURL

MVCアーキテクチャを採用したファイル分割

近年のフロントエンド開発

本書を読んだあとの勉強の進め方

著者について

Profile Pic

メルマガ配信中
(from 三好アキ/エンジニア)


React、Next.js、TypeScriptなど最新のウェブ開発のお役立ち情報を、ビギナー向けにかみ砕いて無料配信中。
(*配信はいつでも停止できます)