アマゾンのような完全に機能する電子商取引 Web サイトを構築するための私の React と Node チュートリアルへようこそ。コード エディターを開き、MERN スタック (MongoDB、ExpressJS、React、Node.JS) を使用して電子商取引 Web サイトを構築するための今後数時間のフォローをしてください。
Heroku : https://react-amazona.herokuapp.com
Heroku ミラー: https://react-amazona-mirror.herokuapp.com
HTML5 および CSS3: セマンティック要素、CSS グリッド、フレックスボックス
React: コンポーネント、プロップ、イベント、フック、ルーター、Axios
Redux: ストア、リデューサー、アクション
ノードとエクスプレス: Web API、ボディパーサー、ファイルアップロード、JWT
MongoDB: Mongoose、アグリゲーション
開発: ESLint、Babel、Git、Github、
導入: Heroku
React と Node のチュートリアルを見る
$ git clone [email protected]:basir/amazona.git $ cd amazona
ローカル MongoDB
ここからインストールしてください
ルートフォルダーに.envファイルを作成します
MONGODB_URL=mongodb://localhost/amazona を設定します。
アトラス クラウド MongoDB
https://cloud.mongodb.com でデータベースを作成します
ルートフォルダーに.envファイルを作成します
MONGODB_URL=mongodb+srv://your-db-connection を設定します
$ npm install $ npm start
# open new terminal $ cd frontend $ npm install $ npm start
これをクロムで実行します: http://localhost:5000/api/users/seed
管理者のメールアドレスとパスワードが返されます
これをクロムで実行します: http://localhost:5000/api/products/seed
6つのサンプル製品を作成します
http://localhost:3000/signin を実行します。
管理者のメールアドレスとパスワードを入力し、「サインイン」をクリックします
Q/A: https://webacademy.pro/amazona
講師に連絡する: Basir
このコースの紹介
あなたが何を構築するのか
何を学ぶのか
観客は誰ですか
ツールのインストール
コードエディタ
ウェブブラウザ
VS コード拡張
ウェブサイトのテンプレート
アマゾナフォルダを作成する
テンプレートフォルダーを作成する
インデックス.htmlを作成する
デフォルトのHTMLコードを追加する
style.css へのリンク
ヘッダー、メイン、フッターを作成する
スタイル要素
ディスプレイ製品
製品ディビジョンを作成する
製品属性を追加する
リンク、画像、名前、価格を追加
React アプリを作成する
npx create-react-app フロントエンド
npm 開始
使用されていないファイルを削除する
Index.html コンテンツを App.js にコピーする
style.cssの内容をindex.cssにコピーします
クラスを className に置き換えます
Github でコードを共有する
gitリポジトリを初期化する
変更をコミットする
githubアカウントを作成する
github にリポジトリを作成する
ローカル リポジトリを github リポジトリに接続する
変更をgithubにプッシュする
評価と製品コンポーネントの作成
コンポーネント/Rating.js を作成する
分割評価を作成する
スタイル分割評価、スパン、および最後のスパン
製品コンポーネントの作成
評価コンポーネントを使用する
製品のビルド画面
反応ルーターダムをインストールする
ホーム画面にBrowserRouterとRouteを使用する
ホームスクリーン.jsを作成する
そこに製品リストコードを追加します
ProductScreen.js を作成する
製品詳細からApp.jsに新しいルートを追加
製品画像、情報、アクションの 3 つの列を作成します
Node.JSサーバーの作成
ルートフォルダーでnpm initを実行します
package.json セットの種類を更新します: モジュール
インポートに .js を追加する
npm インストールエクスプレス
サーバー.jsを作成する
開始コマンドをノード backend/server.js として追加
急行が必要
バックエンドのルートの作成/戻りが準備できました。
products.js をフロントエンドからバックエンドに移動する
/api/products のルートを作成する
返品商品
npm startを実行します
バックエンドから製品をロードする
HomeScreen.jsを編集する
製品、読み込み、エラーを定義します。
useEffect を作成する
async fetchData を定義して呼び出す
axiosをインストールする
/api/product からデータを取得します
リストに表示します
読み込みコンポーネントを作成する
メッセージボックスコンポーネントを作成する
ホーム画面で使用する
コードリンティング用に ESlint をインストールする
VSCode eslint 拡張機能をインストールする
npm install -D eslint
./node_modules/.bin/eslint --init を実行します。
./frontend/.envを作成する
SKIP_PREFLIGHT_CHECK=true を追加
Reduxをホーム画面に追加する
npm install redux 反応-redux
store.jsを作成する
initState= {製品:[]}
Reducer = (状態, アクション) => スイッチ LOAD_PRODUCTS: {products: action.payload}
デフォルトの createStore(reducer, initState) をエクスポートします
HomeScreen.js を編集する
shopName = useSelector(state=>state.products)
const ディスパッチ = useDispatch()
useEffect(()=>dispatch({タイプ: LOAD_PRODUCTS、ペイロード: データ})
ストアをindex.jsに追加
Reduxを製品画面に追加
製品詳細の定数、アクション、リデューサーを作成する
store.jsにリデューサを追加
ProductScreen.js でアクションを使用する
/api/product/:id をバックエンド API に追加
ハンドル「カートに追加」ボタン
ProductScreen.js でカートに追加を処理する
CartScreen.js を作成する
カートに追加アクションを実装する
addToCart 定数、アクション、リデューサーを作成する
store.jsにリデューサを追加
CartScreen.js でアクションを使用する
chartItems.length をレンダリングする
ビルドカート画面
カート項目とカートアクションの 2 つの列を作成します
カートアイテムの長さ === 0 ?カートは空です
商品画像、名前、数量、価格を表示
「チェックアウトに進む」ボタン
カートから削除アクションを実装する
カートから削除アクションを実装する
RemoveFromCart 定数、アクション、リデューサーを作成する
store.jsにリデューサを追加
CartScreen.js でアクションを使用する
MongoDB でサンプル ユーザーを作成する
npmインストールマングース
mongodbに接続する
config.jsを作成する
npm インストール dotenv
MONGODB_URL をエクスポート
モデル/userModel.js を作成する
userSchema と userModel を作成する
ユーザールートを作成する
シードサンプルデータ
MongoDB でサンプル製品を作成する
モデル/productModel.js を作成する
productSchema と productModel を作成する
製品ルートの作成
シードサンプルデータ
サインイン バックエンドの作成
/signin API を作成する
メールアドレスとパスワードを確認する
トークンを生成する
JSON Webトークンをインストールする
dotenv をインストールする
トークンとデータを返す
ポストマンを使ってテストする
サインイン画面をデザインする
サインイン画面の作成
電子メールとパスワードのフィールドをレンダリングする
サインイン定数、アクション、リデューサーを作成する
ユーザーログインに基づいてヘッダーを更新
サインインアクションの実装
サインイン定数、アクション、リデューサーを作成する
store.jsにリデューサを追加
SigninScreen.js でアクションを使用する
登録画面作成
/api/users/register の API を作成する
新しいユーザーをデータベースに挿入する
ユーザー情報とトークンを返す
登録画面の作成
フィールドの追加
スタイルフィールド
App.jsに画面を追加
レジスターアクションとリデューサーを作成する
検証をチェックしてユーザーを作成する
配送画面作成
CheckoutSteps.js コンポーネントを作成する
配送フィールドを作成する
配送定数、アクション、リデューサーを実装する
決済画面の作成
支払いフィールドを作成する
配送定数、アクション、リデューサーを実装する
デザイン発注画面
設計注文の概要フィールド
デザインオーダーアクション
発注APIの作成
createOrder API
オーダーモデルの作成
オーダールーターの作成
ポストオーダールートを作成する
PlaceOrder アクションの実装
注文ボタンのクリックを処理します
発注定数、アクション、リデューサを作成する
注文作成画面
/api/orders/:id のオーダー API をビルドする
OrderScreen.jsを作成する
useEffect のディスパッチ注文詳細アクション
useSelector を使用してデータをロードする
注文画面などのデータを表示する
注文詳細定数、アクション、リデューサーを作成します
PayPalボタンを追加
PayPalからクライアントIDを取得する
.env ファイルに設定します
/api/paypal/clientId フォームからルートを作成します
api.jsでgetPaypalClientIDを作成する
OrderScreen.js に PayPal チェックアウト スクリプトを追加
ペイパルボタンを表示
注文支払いの実装
支払い後に注文を更新する
api.jsでpayOrderを作成する
orderRouter.js で /:id/pay のルートを作成する
支払い命令後に再レンダリングする
注文履歴の表示
顧客注文 API を作成する
getMyOrders の API を作成する
プロフィール画面に注文を表示する
スタイルの注文
ユーザープロフィールを表示する
ユーザー詳細 API を作成する
ユーザー情報を表示する
ユーザープロフィールを更新する
ユーザー更新 API を作成する
ユーザー情報を更新する
管理者ビューの作成
管理者メニューの作成
バックエンドで管理ミドルウェアを作成する
フロントエンドで管理ルートを作成する
製品一覧
商品一覧作成画面
減速機をストアに追加
画面に商品を映す
製品の作成
製品APIを構築する
build 「製品の作成」ボタン
プロダクトを定義する 定数、アクション、リデューサーを作成する
商品一覧画面のアクションを使用する
ビルドプロダクト編集画面
編集画面を作成する
状態を定義する
フィールドを作成する
製品の詳細をロードする
ルートに追加する
製品を更新する
更新APIを定義する
製品更新定数、アクション、リデューサを定義する
商品編集画面でアクションを使用する
製品画像をアップロードする
npm インストールマルチター
アップロードルーターを定義する
アップロードフォルダーを作成する
フロントエンドをハンドルします
製品の削除
バックエンドで削除 API を作成する
作成、削除定数、アクション、リデューサー
商品一覧画面で使用します
リストの注文
注文リストAPIを作成する
オーダー一覧画面作成
減速機をストアに追加
画面に商品を映す
注文の削除 2. 注文削除アクションとリデューサーを作成します。 3. 注文削除アクションを注文リストに追加します。
注文の配達
配信オーダーの定数、アクション、リデューサーを作成する
注文詳細画面に注文配信アクションを追加
Heroku にパブリッシュ
gitリポジトリを作成する
Heroku アカウントを作成する
Heroku CLI をインストールする
Heroku ログイン
Heroku アプリ:アマゾナの作成
ビルドスクリプトの package.json を編集する
プロファイルの作成
mongodb アトラス データベースを作成する
heroku 環境変数でデータベース接続を設定する
コミットしてプッシュする
ユーザーをリストする
リストユーザー用のAPIを構築する
ユーザーリスト作成画面
注文詳細定数、アクション、リデューサーを作成します
ユーザーの削除
ユーザーを削除するための API を構築する
注文詳細定数、アクション、リデューサーを作成します
UserListScreen でアクションを使用する
ユーザーの編集
更新ユーザー向けの API を構築する
編集画面UIの作成
販売者ビューの実装
売り手メニューを追加
販売者ルートを作成する
売り手の製品をリストする
売り手の注文をリストアップする
販売者を商品リストと詳細画面に追加
販売者ページの作成
販売者ページを作成する
製品コンポーネントと製品画面を更新する
製品ルートを更新する
トップセラーカルーセルを追加
反応カルーセルをインストールする
トップセラー向けのアクションとリデューサーを実装する
ホーム画面のデータで反応カルーセルを使用する
1 人の販売者から商品を強制的に注文する
注文時に 1 人の販売者から購入するように addToCart アクションを更新します
検索ボックスと検索画面を作成する
Header.jsで検索バーを作成する
スタイルを追加する
送信フォームを処理する
解析URLを編集してクエリ文字列を取得します
名前で検索できるように製品リスト API を更新する
詳細検索フィルターの追加 1. カテゴリでフィルター 2. 価格帯でフィルター 3. 平均評価でフィルター
詳細検索を完了します 1. 価格でフィルターします 2. 評価でフィルターします 3. 価格、評価などで並べ替えます
製品の評価とレビュー 1. 製品の評価 2. アクションとリデューサーの作成
Google マップ上の住所を選択 1. Google マップの資格情報を作成します 2. Google API キーを使用して .env ファイルを更新します 3. Google API をフロントエンドに送信するための API を作成します 4. マップ画面を作成します 5. Google API を取得します 6. getUserLocation 7. @react- をインストールしますgoogle-maps/api 8. 配送画面で使用する 9. チェックアウト画面に地図を適用する
バグ修正: ローカルで問題なく実行可能
data.js に販売者情報を追加します
販売者としての管理者情報を含むシード製品データ
ユーザーの更新時に isSeller と isAdmin を修正
ユーザーの詳細から認証を削除する
ページネーションの実装
バックエンドの製品ルーターにページネーションを追加する
フロントエンドのアクションとリデューサーにページ番号を適用する
検索画面にページ番号を表示する
mailgun による電子メール注文の受信 1. mailgun アカウントの作成 2. mailgun にドメインを追加して検証 3. mailgun-js をインストール 4. env ファイルに API キーを設定 5. orderRouter で支払い注文を変更 6. 電子メールを送信
ダッシュボード作成画面
バックエンドでチャートデータを作成する
チャート作成画面
顧客とのライブチャットの実装
ソケット IO を使用してバックエンドを作成する
チャットボックスコンポーネントを作成する
サポート画面を作成する
React 17、Router 6、Mongoose 6 へのアップグレード
バックエンド
すべてのパッケージをアンインストールしてインストールします
mongoose connect のオプションを削除する
メールガンを try catch の順序でラップします。
フロントエンド
すべてのパッケージをアンインストールしてインストールします
検索ボックスから削除する
すべてを包み込む
<Route element={}> に置き換えます
<Route element={ }/> に置き換えます
交換してください
PrivateRoute、AdminRoute、および SellerRoute を更新する
Push() を useNavigate の navigate() に置き換えます。
props.match.params.id を const params = useParams(); に置き換えます。
props.location.search を const { search } = useLocation(); に置き換えます。および URLSearchParams
props.match.path を const {pathname} = useLocation(); に置き換えます。
ChatBox、SupportScreen の useEffect に userInfo を配置します