Backend
データベース#データベース#
大きな表形式:Oracle、MySQL、Postgresql(現在のデータベース)
ドキュメントタイプ:MongoDB
DBeaver
現在使用されているデータベースはDbeaverを使用しており、Entityをよく表示するデバイスです.
Nosqlもいい支持者だ.
NoSQLは何ですか.いつ作成されたのですか.
NoSQLの略語については、No SQL、Not Only SQL、No Relational Openrational Database SQLと考えている人もいますが、現在はNot Only SQLを使って説明している人は多くありません.
既存のリレーショナル型DBMSが持つ特性だけでなく、他の特性もサポートするという意味です.
シンプルな大フレームワーク
フロント:ユーザーページ、管理者ページ
バックエンド:API,DB
フロントからBackendにAPIを要求し、APIはデータベースに接続し、対応するデータを取得する.
インポートすると、データはフロントに再送信され、リクエストが完了します.
新しいBackend
バックエンドのレジストリを作成します.yarn init
で新しいpackage.json
が生成される.
-yarn add -D typescript
を使用してDevDependationにタイプスクリプトをインストールします.
-package.json
"scripts": {
"dev": "ts-node index.ts"
},
糸dev入力時index.tsをホームページとして実行します.
次にts-node
にyarn add -D ts-node
と入力し、ts-nodeを予め装着する.
Typescript
のconfigファイルをタイプスクリプトのホームページからrecommandにインポートします.{ "extends": "@tsconfig/recommended/tsconfig.json" }
~tsconfig.json
と入力します.
-devリポジトリで作業します.yarn add -D ts-node-dev
を取り付け、梱包します.jsonのdev
を修正します.
そしてyarn dev
と入力し、メッセージがあるか確認します.
テーブルの作成
postgresqlを操作するにはいくつかのツールが必要です.yarn add pg
でPostgreSQLクライアント-純javascript&libpqをインストールします.
バックエンドからデータベースへの接続を支援するツールには、ORM
のリレーショナル型があります.
文書型はODM
あります.
ORM:Sequelize、TypeORM、Prisma等
ODM:Mongoose等
TypeORM :
typeORMという名前のため、タイプスクリプト専用のORMのように見えますが、JavaScript(ES 5、ES 6、ES 7)もサポートされています.
TypeORMを用いた開発では,PythonのSQLAlchemyなどのデータmapperモードやRailsなどのアクティブレコードモードを用いて開発することができる.また,モデルを正確に定義する利点は,決定したタイプのツリーを最大限に獲得し,複雑なモデル間の関係を形成できることである.
typeORMを使用する理由:
JavaScriptを使用してデータベースを制御できます.
gql,ApolloServerを簡単に使えば,sqlを自作して処理する必要はない.
Entity()
でテーブルを作ると発表した後、
BoardというクラスとしてBaseEntityの機能をインポートして宣言します.
テーブルのプライマリ・キーを必ずしも設定しない場合、エラーが発生したときにプライマリ・キーに設定されるプロパティをPrimaryGeneratedCoumn
で定義します.
次に、Column
で属性を定義します.
API
localhost:4001/graphql
に接続すると、私が定義したquery
ゲートが表示されます.const typeDefs = gql`
type Query{
fetchBoards: Boolean
}
type Mutation {
createBoard(writer: String!, age: Int!): Boolean
}
`;
typeDefsでGraphqlのapi名と必要なプロパティを定義し、Resolvers
でapiがどのように動作するかを定義できます.const resolvers: IResolvers = {
Query: {
fetchBoards: (_, args) => {
try{
const BoardReturn = Board.find({where : {deletedAt: null}})
console.log(BoardReturn);
return BoardReturn
} catch (error){
throw new ApolloError("게시물 요청을 실패했습니다.")
}
},
},
Mutation: {
createBoard: (_, args) => {
try{
Board.insert({
...args
})
return {
message: "게시물이 정상적으로 등록되었습니다."
}
} catch (error) {
//backed와 서버간 통신에서 문제 발생
throw new Error("게시판에 글 등록하는데 에러가 발생했습니다")
}
},
deleteBoard: (parent, args) => {
try{
Board.update({number: args.number},{ deletedAt: new Date() })
return {
message: "게시물 삭제 완료"
}
} catch {
throw new ApolloError('게시물 삭제에 실패했습니다.');
}
}
},
};
入力する値の属性がキー値と同じ場合は、スプレッドシート演算子で直接入力できます.
そうでなければ、args
でパラメータを受け取り、導入して使用することができます.
Reference
この問題について(Backend), 我々は、より多くの情報をここで見つけました
https://velog.io/@fnrkp089/Backend
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
フロント:ユーザーページ、管理者ページ
バックエンド:API,DB
フロントからBackendにAPIを要求し、APIはデータベースに接続し、対応するデータを取得する.
インポートすると、データはフロントに再送信され、リクエストが完了します.
新しいBackend
バックエンドのレジストリを作成します.yarn init
で新しいpackage.json
が生成される.
-yarn add -D typescript
を使用してDevDependationにタイプスクリプトをインストールします.
-package.json
"scripts": {
"dev": "ts-node index.ts"
},
糸dev入力時index.tsをホームページとして実行します.
次にts-node
にyarn add -D ts-node
と入力し、ts-nodeを予め装着する.
Typescript
のconfigファイルをタイプスクリプトのホームページからrecommandにインポートします.{ "extends": "@tsconfig/recommended/tsconfig.json" }
~tsconfig.json
と入力します.
-devリポジトリで作業します.yarn add -D ts-node-dev
を取り付け、梱包します.jsonのdev
を修正します.
そしてyarn dev
と入力し、メッセージがあるか確認します.
テーブルの作成
postgresqlを操作するにはいくつかのツールが必要です.yarn add pg
でPostgreSQLクライアント-純javascript&libpqをインストールします.
バックエンドからデータベースへの接続を支援するツールには、ORM
のリレーショナル型があります.
文書型はODM
あります.
ORM:Sequelize、TypeORM、Prisma等
ODM:Mongoose等
TypeORM :
typeORMという名前のため、タイプスクリプト専用のORMのように見えますが、JavaScript(ES 5、ES 6、ES 7)もサポートされています.
TypeORMを用いた開発では,PythonのSQLAlchemyなどのデータmapperモードやRailsなどのアクティブレコードモードを用いて開発することができる.また,モデルを正確に定義する利点は,決定したタイプのツリーを最大限に獲得し,複雑なモデル間の関係を形成できることである.
typeORMを使用する理由:
JavaScriptを使用してデータベースを制御できます.
gql,ApolloServerを簡単に使えば,sqlを自作して処理する必要はない.
Entity()
でテーブルを作ると発表した後、
BoardというクラスとしてBaseEntityの機能をインポートして宣言します.
テーブルのプライマリ・キーを必ずしも設定しない場合、エラーが発生したときにプライマリ・キーに設定されるプロパティをPrimaryGeneratedCoumn
で定義します.
次に、Column
で属性を定義します.
API
localhost:4001/graphql
に接続すると、私が定義したquery
ゲートが表示されます.const typeDefs = gql`
type Query{
fetchBoards: Boolean
}
type Mutation {
createBoard(writer: String!, age: Int!): Boolean
}
`;
typeDefsでGraphqlのapi名と必要なプロパティを定義し、Resolvers
でapiがどのように動作するかを定義できます.const resolvers: IResolvers = {
Query: {
fetchBoards: (_, args) => {
try{
const BoardReturn = Board.find({where : {deletedAt: null}})
console.log(BoardReturn);
return BoardReturn
} catch (error){
throw new ApolloError("게시물 요청을 실패했습니다.")
}
},
},
Mutation: {
createBoard: (_, args) => {
try{
Board.insert({
...args
})
return {
message: "게시물이 정상적으로 등록되었습니다."
}
} catch (error) {
//backed와 서버간 통신에서 문제 발생
throw new Error("게시판에 글 등록하는데 에러가 발생했습니다")
}
},
deleteBoard: (parent, args) => {
try{
Board.update({number: args.number},{ deletedAt: new Date() })
return {
message: "게시물 삭제 완료"
}
} catch {
throw new ApolloError('게시물 삭제에 실패했습니다.');
}
}
},
};
入力する値の属性がキー値と同じ場合は、スプレッドシート演算子で直接入力できます.
そうでなければ、args
でパラメータを受け取り、導入して使用することができます.
Reference
この問題について(Backend), 我々は、より多くの情報をここで見つけました
https://velog.io/@fnrkp089/Backend
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
"scripts": {
"dev": "ts-node index.ts"
},
const typeDefs = gql`
type Query{
fetchBoards: Boolean
}
type Mutation {
createBoard(writer: String!, age: Int!): Boolean
}
`;
const resolvers: IResolvers = {
Query: {
fetchBoards: (_, args) => {
try{
const BoardReturn = Board.find({where : {deletedAt: null}})
console.log(BoardReturn);
return BoardReturn
} catch (error){
throw new ApolloError("게시물 요청을 실패했습니다.")
}
},
},
Mutation: {
createBoard: (_, args) => {
try{
Board.insert({
...args
})
return {
message: "게시물이 정상적으로 등록되었습니다."
}
} catch (error) {
//backed와 서버간 통신에서 문제 발생
throw new Error("게시판에 글 등록하는데 에러가 발생했습니다")
}
},
deleteBoard: (parent, args) => {
try{
Board.update({number: args.number},{ deletedAt: new Date() })
return {
message: "게시물 삭제 완료"
}
} catch {
throw new ApolloError('게시물 삭제에 실패했습니다.');
}
}
},
};
Reference
この問題について(Backend), 我々は、より多くの情報をここで見つけました https://velog.io/@fnrkp089/Backendテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol