![見出し画像](https://assets.st-note.com/production/uploads/images/154081235/rectangle_large_type_2_168a4e124305c699f272472d09e1f757.png?width=1200)
はじめてつくるバックエンドサーバー 発展編 【改訂版発売】
2年ぶりのアップデート
『はじめてつくるバックエンドサーバー発展編(Node.js & Express & MongoDB)』の改訂版を発売しました。
電子書籍とペーパーバック、両方でご利用いただけます。
改訂の理由
『はじめてつくるバックエンドサーバー発展編』を書いたのは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)で次のようなポストを見かけました。
![](https://assets.st-note.com/img/1726143421-q2179xMbRAPrOtzVdjUQhNYF.jpg?width=1200)
https://x.com/OUC_Library/status/1830841332870586418
電子書籍版もペーパーバック版も、個人の方が購入・利用するものだと私は考えていたので、図書館のような公共機関に購入していただいているとは思っていませんでした。
手に触れられず共有もできない電子書籍ではなく、物理的な「モノ」としてのペーパーバックには、こういう強みもあるんですね。
そして大学の図書館という、若い学生の方たちが無料で読める環境に私の本があることも大変うれしく思いました。
私自身学生の時には、1000円、いや500円の文庫本を買うのにもためらいを覚えていたので、このように大学図書館に購入いただいたことで、間接的にも学生の方たちの助けになればと思っています。
目次
第1章 基礎編
JSONデータの整形
ウェブサイトとウェブアプリケーションの違い
フロントエンドとバックエンドの違い
ウェブアプリケーションが実行する操作(CRUD)
第2章 ブログ機能作り
フォルダとファイルの作成
package.jsonの作成
ブログのデータ作成機能
MongoDBのセットアップ
MongoDBにデータを書き込む
MongoDBのデータを読み取る(すべての記事データ)
MongoDBのデータを読み取る(記事データを1つ)
MongoDBのデータを修正する
MongoDBのデータを削除する
補足(修正と削除にPOSTリクエストを使う理由)
データをブラウザで表示・操作する
ブログデータをMongoDBに保存する
第3章 ログイン機能作り
ユーザー登録機能
ログイン機能
ログイン状態を維持する(セッション)
コードの整理とCSS
第4章 デプロイ
デプロイの準備
Gitのダウンロード
Renderのセットアップ
Renderへのデプロイ
第5章 ブラッシュアップ
存在しないURL
MVCアーキテクチャを採用したファイル分割
近年のフロントエンド開発
本書を読んだあとの勉強の進め方
著者について
この記事の著者については下記リンクをチェック
◆ Amazon著者ページ:https://www.amazon.co.jp/stores/author/B099Z51QF2
公式サイト:https://monotein.com
X(Twitter):https://twitter.com/monotein_
◆ React、Next.js、TypeScriptなどのお役立ち情報や実践的コンテンツを、ビギナー向けにかみ砕いて無料配信中。メルマガ登録はこちらから → https://monotein.com/register-newsletter