はしがき
今日は簡単なニュースリリースシステムを作成します。システムの最初の段階は、主に次の機能を備えています。
①ニュース型管理
②ニュース管理(画像アップロード機能付き)
③ ニュース閲覧
機能は多くありませんが、添付ファイルの追加、削除、確認、アップロードのみで十分な基本的な操作が含まれています。それでは、今日から勉強を始めましょう
準備
昨日のトラブルの後、すでに nodeJS と mongoDB 環境ができました。新しいプロジェクト ファイルとデータベース ファイルを直接作成できるようになりました。
最初のステップは、コマンド プロンプトを開いて D ドライブに切り替え、
と入力することです。その後、システムは基本的な環境を自動的に構築します
明らかに、現時点では多くのモジュールの依存関係は存在しません。昨日の package.json のテストを行ってください。
次に、プロジェクト ディレクトリに切り替えます:
すべての依存ファイルがダウンロードされたら、
と入力します。それで、プログラムは問題なく実行されましたが、URL を開いたところ、実際に問題がないことがわかりました。
追記: ここで注意が必要な問題があります。ダウンロードしたファイルは UTF-8 でエンコードされていないため、中国語が文字化けする可能性があります。ファイルのエンコードは自分で統一する必要があります。
プログラムの実行時には、データベース関連の構成が必要です
① まず、mongoDB ディレクトリに新しいニュースフォルダーを作成します
② 設定ファイル settings.js をプロジェクトに追加します
③ 新しいmodelsディレクトリを作成し、新しいdb.jsを作成します
④ デスクトップに新しい news.bat プログラムを作成します
今後データベースを起動するには、これを実行するだけで基本的な準備は完了です。
しかし、ここには 2 つの面倒な点があります。1 つは、毎回ニュース番組を起動するのが面倒であるということ、もう 1 つは、何かを変更するには再起動する必要があるということです。そのため、最初にこの 2 つの問題をここで解決します。
① デスクトップに新しい news_app.bat を作成し、後で実行してプログラムを起動します
② スーパーバイザーはプロセス保護プログラムです。最初にフォローしてから、node_app.bat を調整します。
もちろん、事前にインストールする必要があります:
この後、ファイルを変更した後に手動で再起動する必要はありません (news_app をプロジェクト ディレクトリに配置する必要があります)ので、準備作業はここで終了です
プロジェクトの構造
最初のステップの後、プロジェクトの構造について考える必要があります
① トップページはインデックスになっており、すべてのニュースの種類とニュース項目がリストされます
② 各ニュース項目には編集/削除/表示の 3 つのボタンがあります
③ ホームページにニュースを追加するボタンがあります (追加時に写真をアップロードできます)
基本的な機能は上記の通り
そこで、アプリのルーティング機能を削除し、すべてのルートをインデックスに追加しました
ニュースの追加には別のページが必要であり、追加ボタンをクリックすると他の処理が行われるため、最初のステップはこれと同じくらい簡単です。そのため、各リクエストは内部で分割する必要があります。現在の規制は次のとおりです。
/ デフォルトのページ。すべてのジャンルとニュースが表示され、削除ボタンが付いています。
/add ニュース追加ページに入ります
/addNews ニュース固有の投稿リクエストアドレスを追加(ボタンクリック時の応答)
/delete ニュース削除リクエスト
/特定のニュースクエリを表示
そこで、上記のルートを少し変更しました:
そこで、Web ページを整理するためにいくつかの新しいテンプレートを作成する必要があります。ここでは先頭と末尾を分離せず、最も単純なページだけを作成します。
一時的にindex.ejsと同じように動作するaddとviewという2つのテンプレートファイルを追加し、ナビゲーションを変更しました
これでプロジェクト構造は終わりです
データ操作
全体的な構造が完成したら、データ操作を実行する必要があります。
①データの追加(ニュースの追加)
② データ表示(ニュース表示)
③ データ削除(ニュース削除)
本来は型の操作もするのですが、初めてだと混乱しやすいので、やってる途中で分からなくなってしまいました
ニュースを追加
ここではフォーム送信を使用せず、ajax を使用します...ここでは zepto ライブラリを導入するので、ページは次のようになります