1. ホーム
  2. javascript

Node.jsを使ったWebサイト構築のベストプラクティス

2023-09-08 19:08:52

質問

Node.jsでゼロからウェブサイトを開発するにはどうしたらいいのかと思っていました。 私はどのようにすれば おそらく しかし、私が興味を持っているのは ベスト デザインプラクティスに興味があります。

この理論的なウェブサイトが必要なのです。

  1. 多くの AJAX を実行する
  2. 非常に簡単であること
  3. 比較的小さいこと
  4. 接続先...例えばMySQLサーバに接続する。

PHPでは、かなり小さなWebサイトを構築するのはとても簡単でした。Apache上のPHPとMySQLサーバーをセットアップして、次のようなことをしました。

  • includes/db/ には、データベースへの接続用のconnect.php、データベース関連の一般的な関数を含むファイル、などがあります。
  • includes/layout/ footer.php、header.php、および他のレイアウトに関連するものがあるファイルです。
  • includes/users/ は、ユーザー関連のアクションを処理するために

それから、PHPはページを作成し、これらのファイルを一緒にインクルードしてウェブサイトを形成することができます。

<?php
   require_once('inclues/users/user_session.php');
   require_once('inclues/db/connect.php');
   require_once('inclues/design/header.php')
?>

// Other php or html or related content relating to the page

<?php
   require_once('inclues/.../footer.php');
?>

私はNode.jsで似たようなことができるのではないかと思っていました - 私は次のようなことを達成する方法を探しているのです。 シンプル , 速い そして ストレート を可能な限り実現します。

答えがシンプルでなければ、おすすめの本を教えてほしいです、読書は嫌いではないので。

私はイベントベースのプログラミングが大好きで、JavaScriptの能力が本当に大好きで、Node.jsにとても興奮しています。私はそれを使ってこの種のものを開発する方法を、最初から正しい方法で学びたいのです。

どのように解決するのですか?

まず、悪いニュースから。以下のように Node.js はかなり新しい技術なので、本格的なWebサイトの制作や保守・運用のプロセスは、現在慣れているものとはかなり異なることが分かると思います。

Josh3736 が追加されます。 Node.jsとそのさまざまなパッケージ(Connect、Express)がどのように機能するかを理解すれば、新しいサイトを非常に速く開発できることがわかりました。

Node.jsに現在存在する荒削りな部分と、その開発の速いペースや関係するすべてのモジュールが組み合わさって、物事を複雑にしてしまい、あなたが望むよりもシンプルで速く、わかりやすいものではなくなってしまうかもしれません。

それはさておき、ここに良い知らせがあります。

その ノードパッケージマネージャ、NPM には、Node.js の基本的な機能を拡張するための優れたツールやフレームワークがたくさんあり、Web サーバを作成するのに適しています。

最も顕著なのは エクスプレス フレームワーク は、Web サーバを実行するために必要なほとんどすべてのもの (クッキー、セッション、パスルーティングを含む) を含んでいます。さらに、Express はパーシャルをサポートしており、ヘッダーとフッターのインクルードを処理します。

Express は SenchaのConnect . Cookieとセッションは、実際にはConnectによって提供されています。Expressは、ルーティングを簡素化し、ビューやパーティションを処理するものです。したがって、Expressに付属するすべてのベルとホイッスルが必要でない場合は、代わりにConnectを使用することができます。

これらのパーシャルにテンプレートを使用したい場合は Jade テンプレート エンジン はあなたのために物事をスピードアップすることができます。とはいえ Josh3736 は、Jadeが遅いことと、空白が重要であることを指摘しています。より完全な概観は をご覧ください。 で、彼のお気に入りが紹介されています。 doT . (私自身は、Node.js を使って socket.io ベースのアプリケーションにしか使わないので、テンプレートに関しては私よりも良いソースです)。

あなたは できる を使用して Node.js から MySQL に接続することができます。 db-mysql モジュールを使ってNode jsからMySQLに接続しますが、すでに存在するシステムに接続されたデータにアクセスするためにそれが必要ない場合は、もっと......近代的なアプローチを使うことをお勧めします。現代的な'アプローチ、それは NoSQL データベースを使用します。 MongoDB を経由して マングース が一般的な方法です。

また、単にオブジェクトを保存するだけなら、単に Redis を使えばいいのです(いずれは必要になるでしょうが)。

ウェブサイトが完成したら、それをデプロイして動作し続けることを確認する必要があります。これを行うには、組み込みのクラスタ サポートを使用したり、より機能的な forever npm モジュールを使用します。 詳しくは私のこのSOの質問を参照してください。

結論 :

私が言いたいのは、こういうことです。

Node.jsでウェブサイトを構築するためのベストプラクティスは何かと尋ねることは、PHPでウェブサイトを構築するためのベストな方法は何かと尋ねることとほぼ同じです。100人の開発者が100通りの答えを出すでしょう。

NPMは、関連する多くのタスクを大幅に簡略化するさまざまな優れたフレームワークに恵まれていますが、どれが本当に行くべき道なのかは、すべて好みに基づいているのです。

私が言ったように、Node.js はまだかなり若い技術なので、フレームワークや追加ツールのどれもがまだ「デファクトスタンダード」として出現していません。あなたがしようとしているほとんどのことについては、おそらくさまざまな選択肢があり、更新中にそれらのほとんどを使用するとあなたのコードが壊れることが予想されます。Node.js自体やほとんどのモジュールの開発は速いペースなので、更新中にそれらのほとんどを使用するとコードが壊れることが予想されます。

すべてをまとめる :

これまで述べてきたように、Node.jsの私の主な制作上の用途は socket.io を使用できるようにすることです。したがって、私は良い実例を持ちません(そして、私は当然の休暇に出発しようとしているので、それをまとめる時間もありません)。しかし、いくつかの良い例があります。

繰り返しますが、進むべき道 (およびそれに続く例) は、最終的な目標と選択した技術に大きく依存しますが、幸いなことに、利用可能なすべての選択肢について利用可能なリソースがたくさんあります。ほとんどのモジュールは、よく文書化された GitHub リポジトリを使用しており、最も人気のあるモジュールとの組み合わせで例を含んでいます (See the /examples/ dirはほとんどのリポジトリに存在するようです)。

がんばってください。(そして ジョシュ3736 に感謝します)。