Day 17
フロントエンドだけでなく、バックエンドも理解しなければなりません.
簡単に言えば、フロントエンドコンピュータ、バックエンドコンピュータ、データベース内のコンピュータを考慮して、その動作構造と原理を理解することが望ましい.
サービスには3台のコンピュータ(プログラム)と、それらを表示するためのコンピュータ(brでユーザー、ブラウザの略称を表す):フロントエンド、バックエンド、DataBase
これまでは糸開発によって運行されていたが,導入後はクラウドやコンピュータを用いてそこで糸開発を行うことができる.(サーバを開きます.これはfront-endです)
私たちが使っているバックエンドapiはもう別のコンピュータで糸devを開いています.
データベースは既に存在します
これが別のパソコン/雲の巨大なアクセルのようなものだと思ったらいいです.
今まで、私たちがここでやってきたのはfront-endで、私たちは今ユーザーのパソコンにfront-endを置いて糸の開発をしてテストしています(私しか見えません)
では、誰もが接続できるように配置する必要があります.
すでに配備されていると思ってください.
ブラウザでは、接続に成功するとfront-endがHTML、CSS、JSをロードし、ブラウザで描画します(データは空です).
また、Back-EndからuseQueryなどのapiを取得して空白データを埋め込むには、back-endにデータがありません
Back-endからDataBaseに必要なデータをインポート/保存し、ブラウザで描画してサイト全体を完了します.
これらの過程を実行する過程で、一部の友达は相応の役割を果たした.
ブラウザ機能を実行するapollo-client;
バックエンドのapollo-severに送信し、
バックエンドからデータベースに送信されるORM/ODM
どうして1つではなく2つあるのですか?
ORMとODMは名前だけでなく用途も異なります
テーブル、<-リレーショナル・データベース、SQL、RDB用
Oracle、mySQL、Postgresなど.
<-NOSQL(sqlだけでなく)ファイル封筒を格納するためのもの(collection)
代表的にMongoDB、Firebase
だからなぜORM/ODMなの?
ORMはSQLの友達をつなぐキャラクターです.
ODMはNoSQL接続を担当する友人(Object Document Model)
これまでSQLはデフォルトであり、他のパフォーマンスが必要な場合はNoSQLの追加を検討してきました.
!!繰り返し強調!!!繰り返し強調!!!繰り返し強調!!!繰り返し強調!!!繰り返し強調!!!繰り返し強調!!
front-endこれを知っていますか?
もちろん、青少年の場合、それを知らない可能性がありますが、時間が経つにつれて、front-endまでの深さではますますはっきりしなくなります.front-endまでの深さでは、両方ともできます.そして、プロセス全体を理解しなければなりません.それを行うには、ログインやアップロードなどのバックエンドの知識が必要です.これらのプロセスを理解する必要があります.
データベースを目で見てみましょう.一度ダイバーをつけると見えます.
https://dbeaver.io/
コンセント部分をクリックして現在使用しているDBを選択
現在使用中のゾウのシェイプPostgreSQLを使用
プリファレンスウィンドウが表示されます
ポートとは、糸が開発した3000ポートのこと.PostgreSQLデフォルトでは5432ポートが使用されています
ホストはIPアドレスを表し、使用するデータベース(PostgreSQLが敷かれたプログラム/クラウド/コンピュータ)のアドレスをホストに格納します.
パスワードが掛かっていたら入れます.
その後test connectionをクリックすると接続が確認できます.
実際に中身が見えます.これは、表示中のツール、管理ツールにすぎず、単独で変更することはできません.(デバッガ)
データベースの実践
バックエンドapiの作成
まず、空のDBにテーブルを作成します.
VSコードにclass backendを作成し、indexを作成します.jsで始まる.
JavaScriptが動いている場所はどこですか?
実際、HTML、CSS、JSはブラウザで実行されています.
これだけ使用されているjavaスクリプトブラウザでしか使用できませんか??
ウィンドウを開き、オペレーティングシステムで->ノードを実行します.js
非ブラウザでJavaScriptを実行できます(Node.jsをブラウザと見なすことを推奨します)
Node.jsを設定します.
端末からclass backendに移動
square init以降の問題はEnterを検索するだけでdispold設定のpackageに設定されます.json転送
後続パッケージ.jsonのスクリプトセクションの変更
それから糸の開発をしますか?
ブラウザでなくても開けられる???
再インデックス.jsに戻ってapiを作成する前に、データベース内のデータを格納するための空間、テーブルを作成する必要があります.その後columnを別々に作成して空きスペースを作成します.後でAPIを作成して保存する必要があります
APOLLOクライアントを使用してブラウザからバックエンドコンピュータに接続するなど、バックエンドからデータベースへの接続にはORMが必要ですが、ORMdpssequrize、typeORMなどもあります.
ここではtypeORMを使用します.
これでnode modulesが埋められます
タイプスクリプトがインストールされましたtsに変換
tsconfig.jsonファイルを作成します.
Next.jsではインストールするだけでいいですが、手動で入力する必要があります.
タイプスクリプトのdogsにはtsconfigに関する部分があります.
https://www.typescriptlang.org/docs/handbook/tsconfig-json.html
次のアドバイスがあります.
https://www.npmjs.com/package/@tsconfig/recommended
このようにして例が現れた.これはtsconfigですtsを入れます.
実行はnodeではなくts-nodeです.だから.
ts-node、ts-node-devをインストールする必要があります.(導入用、開発用)
取り付けができたら梱包します.jsonに「dev」セクションをts-node-devindexに変換します.tsに変更します.
あとはORMを敷きます.
class backendフォルダのBoard mysql.tsを作成して文章を埋め込む
typeformからBasentityをインポートする必要があります
だから記入したものを表に変えるように要求すべきです.
実行クラスは、既存のJavaScriptとは異なる必要があります.
typeormのEntity機能(関数)を実行する必要があります.異なる操作をどのように実行するかは、@Entity()に遭遇することから始まります.次にクラスをentity機能に入れ、JavaScriptとは異なる方法で実行します.
リクエストは、このクラスをmysqlテーブルに変換します.
@columnこれをcolumnに変えさせてください
!昔の赤い糸.
tsconfigのcompilerOptionで
「実験Decorators」:trueの追加
writer,title,年齢は年齢です!:代替手順(必ずデータを表示してください!)
後で接続する必要があります
type, database, username, password, host, port
充填後
どこで参照を書きますか.mysql.これは、tsが終了したすべてのファイルを参照することを意味する.
synchronize: true
同期を有効にするかどうか
どうして成功したか知ってるの?
を選択します.
.catch(()=>{})を実行する必要があります.
成功したら、失敗したら、catch
しかし、エラーが発生します.
https://velog.io/@john_with_smile/x-Unable-to-compile-TypeScript-Cannot-find-name-dirname
簡単に言えば、タイプを指定します.
その後糸devの場合、接続が完了するにつれて、このように織りが完了します.
以前はバックエンドの開発時に入力していましたが...表示
ディビバーに行ってみると、実際に空いているテーブルを作ったことがわかります!
!!Node modulesにはGitにアップロードするコンテンツがたくさんあります
.gitignoreファイルを作成し/node modulesに挿入
追加した場合は、個別にアップロードされません
簡単に言えば、フロントエンドコンピュータ、バックエンドコンピュータ、データベース内のコンピュータを考慮して、その動作構造と原理を理解することが望ましい.
Webサービス構造

サービスには3台のコンピュータ(プログラム)と、それらを表示するためのコンピュータ(brでユーザー、ブラウザの略称を表す):フロントエンド、バックエンド、DataBase
これまでは糸開発によって運行されていたが,導入後はクラウドやコンピュータを用いてそこで糸開発を行うことができる.(サーバを開きます.これはfront-endです)
私たちが使っているバックエンドapiはもう別のコンピュータで糸devを開いています.
データベースは既に存在します
これが別のパソコン/雲の巨大なアクセルのようなものだと思ったらいいです.
では、誰もが接続できるように配置する必要があります.
すでに配備されていると思ってください.

ブラウザでは、接続に成功するとfront-endがHTML、CSS、JSをロードし、ブラウザで描画します(データは空です).
また、Back-EndからuseQueryなどのapiを取得して空白データを埋め込むには、back-endにデータがありません
Back-endからDataBaseに必要なデータをインポート/保存し、ブラウザで描画してサイト全体を完了します.
ブラウザ機能を実行するapollo-client;
バックエンドのapollo-severに送信し、
バックエンドからデータベースに送信されるORM/ODM
どうして1つではなく2つあるのですか?
ORMとODMは名前だけでなく用途も異なります
SQLとNoSQL

テーブル、<-リレーショナル・データベース、SQL、RDB用
Oracle、mySQL、Postgresなど.
<-NOSQL(sqlだけでなく)ファイル封筒を格納するためのもの(collection)
代表的にMongoDB、Firebase
だからなぜORM/ODMなの?
ORMはSQLの友達をつなぐキャラクターです.
ODMはNoSQL接続を担当する友人(Object Document Model)
これまでSQLはデフォルトであり、他のパフォーマンスが必要な場合はNoSQLの追加を検討してきました.
!!繰り返し強調!!!繰り返し強調!!!繰り返し強調!!!繰り返し強調!!!繰り返し強調!!!繰り返し強調!!
front-endこれを知っていますか?
もちろん、青少年の場合、それを知らない可能性がありますが、時間が経つにつれて、front-endまでの深さではますますはっきりしなくなります.front-endまでの深さでは、両方ともできます.そして、プロセス全体を理解しなければなりません.それを行うには、ログインやアップロードなどのバックエンドの知識が必要です.これらのプロセスを理解する必要があります.
データベース#データベース#
データベースを目で見てみましょう.一度ダイバーをつけると見えます.
https://dbeaver.io/

コンセント部分をクリックして現在使用しているDBを選択
現在使用中のゾウのシェイプPostgreSQLを使用

プリファレンスウィンドウが表示されます
ポートとは、糸が開発した3000ポートのこと.PostgreSQLデフォルトでは5432ポートが使用されています
ホストはIPアドレスを表し、使用するデータベース(PostgreSQLが敷かれたプログラム/クラウド/コンピュータ)のアドレスをホストに格納します.
パスワードが掛かっていたら入れます.
その後test connectionをクリックすると接続が確認できます.

実際に中身が見えます.これは、表示中のツール、管理ツールにすぎず、単独で変更することはできません.(デバッガ)


データベースの実践
バックエンドapiの作成
まず、空のDBにテーブルを作成します.
VSコードにclass backendを作成し、indexを作成します.jsで始まる.
JavaScriptが動いている場所はどこですか?
実際、HTML、CSS、JSはブラウザで実行されています.
これだけ使用されているjavaスクリプトブラウザでしか使用できませんか??
ウィンドウを開き、オペレーティングシステムで->ノードを実行します.js
非ブラウザでJavaScriptを実行できます(Node.jsをブラウザと見なすことを推奨します)
Node.jsを設定します.
端末からclass backendに移動
square init以降の問題はEnterを検索するだけでdispold設定のpackageに設定されます.json転送
後続パッケージ.jsonのスクリプトセクションの変更

それから糸の開発をしますか?

ブラウザでなくても開けられる???
再インデックス.jsに戻ってapiを作成する前に、データベース内のデータを格納するための空間、テーブルを作成する必要があります.その後columnを別々に作成して空きスペースを作成します.後でAPIを作成して保存する必要があります
APOLLOクライアントを使用してブラウザからバックエンドコンピュータに接続するなど、バックエンドからデータベースへの接続にはORMが必要ですが、ORMdpssequrize、typeORMなどもあります.
ここではtypeORMを使用します.
yarn add -D typescript
(npmが遅いので線で)これでnode modulesが埋められます
タイプスクリプトがインストールされましたtsに変換
tsconfig.jsonファイルを作成します.

Next.jsではインストールするだけでいいですが、手動で入力する必要があります.
タイプスクリプトのdogsにはtsconfigに関する部分があります.
https://www.typescriptlang.org/docs/handbook/tsconfig-json.html

次のアドバイスがあります.
https://www.npmjs.com/package/@tsconfig/recommended

このようにして例が現れた.これはtsconfigですtsを入れます.
実行はnodeではなくts-nodeです.だから.
ts-node、ts-node-devをインストールする必要があります.(導入用、開発用)
yarn add -D ts-node
yarn add -D ts-node-dev

取り付けができたら梱包します.jsonに「dev」セクションをts-node-devindexに変換します.tsに変更します.
あとはORMを敷きます.
yarn add typeorm
typeormの役割は、ここでデータベースを使用するかどうかによって、データベースを開くのではなく、対応するライブラリをインストールする必要がありますが、ライブラリはmysqlです.yarn add mysql
この設定は完了しましたclass backendフォルダのBoard mysql.tsを作成して文章を埋め込む

typeformからBasentityをインポートする必要があります
だから記入したものを表に変えるように要求すべきです.

実行クラスは、既存のJavaScriptとは異なる必要があります.
typeormのEntity機能(関数)を実行する必要があります.異なる操作をどのように実行するかは、@Entity()に遭遇することから始まります.次にクラスをentity機能に入れ、JavaScriptとは異なる方法で実行します.
リクエストは、このクラスをmysqlテーブルに変換します.
@columnこれをcolumnに変えさせてください
!昔の赤い糸.
tsconfigのcompilerOptionで
「実験Decorators」:trueの追加
writer,title,年齢は年齢です!:代替手順(必ずデータを表示してください!)
後で接続する必要があります
type, database, username, password, host, port
充填後
どこで参照を書きますか.mysql.これは、tsが終了したすべてのファイルを参照することを意味する.
entities:[__dirname + "/*.mysql.ts"]
logging : true
日記を見るか見ないかを決めるという意味です.synchronize: true
同期を有効にするかどうか
どうして成功したか知ってるの?
を選択します.
.catch(()=>{})を実行する必要があります.
成功したら、失敗したら、catch
import { createConnection } from "typeorm";
createConnection({
type: "mysql",
database: "mysql",
username: "root",
password: "codecamp",
host: "34.64.207.239",
port: 3313,
entities: [__dirname + "/*.mysql.ts"],
logging: true,
synchronize: true,
})
.then(() => {
//연결 성공시 실생하기!!
console.log("연결완료!");
})
.catch((error) => {
// 연결 실패시 실행하기
console.log(error);
});
今、糸devを実行すると、作成通りになります...必ず成功しなければならない.しかし、エラーが発生します.
https://velog.io/@john_with_smile/x-Unable-to-compile-TypeScript-Cannot-find-name-dirname
簡単に言えば、タイプを指定します.

その後糸devの場合、接続が完了するにつれて、このように織りが完了します.
以前はバックエンドの開発時に入力していましたが...表示

ディビバーに行ってみると、実際に空いているテーブルを作ったことがわかります!
!!Node modulesにはGitにアップロードするコンテンツがたくさんあります
.gitignoreファイルを作成し/node modulesに挿入
追加した場合は、個別にアップロードされません

Reference
この問題について(Day 17), 我々は、より多くの情報をここで見つけました https://velog.io/@john_with_smile/Day-17テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol