YouTube#5-5 MongoDBのクローン:Mongooseを使用してデータをロードする
🔖 カリキュラム:6.12~6.14
Preview
1) src/server.js:サーバ設定に関連するコンテンツのみを保持します.
2) src/init.js:initファイル(initialize、すなわち主に初期化に使用されるファイル名)を作成し、サーバの開閉を担当する子供をここに連れて行きます.db接続もサーバを開くときに実行されるため、一緒にインポートされます. nodemonをリセット:nodemonはサーバの起動時に実行されるため、パッケージ化されます.jsonでnodemonが表示するファイルはserverです.jsではなくinitです.jsに変更しても間違いはありません. fake db deleted import Video models Video.find(fillter, callback) 🌟
https://mongoosejs.com/docs/api.html#model_Model.find
コールバック関数が起動します.dbの場合、JavaScriptの管轄から外れているため、複数の変更が発生する可能性があるため、プログラムがこれらの変更で正常に動作するようにdebe関連関数をコールバック関数として保持し、後で使用する準備をします.プログラムを実行後に実行するように設定します.
model.find(filter)はデータの検索を停止し、コールバックではなくpromise構文を使用して関数を作成する方法を学習します.
promise構文とは、async(非同期)とawait(実行待ち)のキーワードを使用してデータベースがデータを見つけるのを待つ(まず以下の操作を実行するのを阻止する)構文です.では、上記のコールバック関数は関数trendingに位置する.関数の中の関数です.これらの関数の関数が返されても、trendingは結果を返しません.関数の関数がreturnを使用する場合、次のコマンドは実行しないでください.実際の見返りではない.
callback vs.promise(async,await)の理解
model.find(filter,callback)メソッドを使用してdbでフィルタ条件に合致するデータを検索し、関数を設定して結果を受信して特定の機能を実行します.この関数はdb状態によっては起動できない可能性があるのでcallback関数に設定すると、エラーが発生してもアプリケーション全体の実行に影響しません.
*コールバック関数の概念はモダンjavascript 12章の関数部分でよく整理されています.もう一度読みなさい
model.find()を使用してdbに必要なデータとノードを検索します.js接続 は、コールバックとpromisの概念をさらに理解した.
Preview
前回はCRUDの仕事前の設定のためにSchema, mongoose.model()を使用してdbに送信するデータ型を定義します.
この授業.findメソッドを使用して作成されたデータフォーマットは、データを要求および受信します.
レッスン内容
データ要求(クエリーの生成)
Step 0)サーバファイルの再パッケージ
他の操作を実行する前に、dbに関連するすべてのデータ型がインポートされます.jsファイルが長くなることを考慮して、きれいに二つに分けることにしました.
データ要求(クエリーの生成)
Step 0)サーバファイルの再パッケージ
他の操作を実行する前に、dbに関連するすべてのデータ型がインポートされます.jsファイルが長くなることを考慮して、きれいに二つに分けることにしました.
2) src/init.js:initファイル(initialize、すなわち主に初期化に使用されるファイル名)を作成し、サーバの開閉を担当する子供をここに連れて行きます.db接続もサーバを開くときに実行されるため、一緒にインポートされます.
import "./db";
import "./models/Video";
import app from "./server";
const PORT = 4000;
const handleListening = (req, res) => {
console.log(`🚀 Sever listening on port http://localhost:${PORT}`)
};
app.listen( PORT, handleListening );
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "nodemon --exec babel-node src/init.js"
},
step 1) .find()を使用してdbを読み込む
https://mongoosejs.com/docs/api.html#model_Model.find
Step 1-1)読み込まれたdbコールバック関数として使用🌟
import Video from "../models/Video";
export const trending = (req, res) => {
Video.find({}, (error, videos)=> {
return res.render("home", { pageTitle:"Home", videos });
})
}
! なぜここでcallback関数を使用するのかコールバック関数が起動します.dbの場合、JavaScriptの管轄から外れているため、複数の変更が発生する可能性があるため、プログラムがこれらの変更で正常に動作するようにdebe関連関数をコールバック関数として保持し、後で使用する準備をします.プログラムを実行後に実行するように設定します.
Step 1-2)を使用して読み込まれたdb promise🌟
model.find(filter)はデータの検索を停止し、コールバックではなくpromise構文を使用して関数を作成する方法を学習します.
promise構文とは、async(非同期)とawait(実行待ち)のキーワードを使用してデータベースがデータを見つけるのを待つ(まず以下の操作を実行するのを阻止する)構文です.
export const trending = async (req, res) => {
const videos = await Video.find({});
return res.render("home", { pageTitle:"Home", videos });
}
エラーはtry-catchドアでつかみます.export const home = async (req, res) => {
try {
const videos = await Video.find({});
return res.render("home", { pageTitle: "Home", videos })
} catch (error) {
console.log("server error", error)
}
}
🌟 簡単に言えば、callbackは、実行時に関数内の関数(高次関数)によって決定される.この場合、高次関数は.findは実行時以降にコールバック関数を実行するように設定されているそうです.待機は待機であり、待機関数は正常に動作します.実行するまで、次のコードには移動しません.データ転送は少ないが、エラーを防ぐために以下のコードを実行します.追加学習?
callback vs.promise(async,await)の理解
model.find(filter,callback)メソッドを使用してdbでフィルタ条件に合致するデータを検索し、関数を設定して結果を受信して特定の機能を実行します.この関数はdb状態によっては起動できない可能性があるのでcallback関数に設定すると、エラーが発生してもアプリケーション全体の実行に影響しません.
*コールバック関数の概念はモダンjavascript 12章の関数部分でよく整理されています.もう一度読みなさい
サマリ
Reference
この問題について(YouTube#5-5 MongoDBのクローン:Mongooseを使用してデータをロードする), 我々は、より多くの情報をここで見つけました https://velog.io/@jlee0505/유튜브-클로닝-5-MongoDBテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol