koa 2+graphql+typescript+jwt+typeormのnodejsプロジェクト
1775 ワード
最近nodeプロジェクトを書きましたが、主に使用されている技術は次のとおりです.
プロジェクト構造:
このプロジェクトはkoaのルーティングを使用しており、通常のRESTfulとgraphqlの2種類のapiを同時にサポートすることができます.
現在jwtモードの使用が許可されており、登録のためにredisでユーザセッション情報の保存を支援している(酔っ払っている...)
graphqlプロジェクトでは、バックエンド定義でデータモデルを返すだけで、フロントエンドは自分の必要なデータに従ってインタフェースをクエリーし、冗長性のないデータを返すことができ、非常に簡潔で便利です.
graphqlの定義や様々なメリットは言わないで、実戦結果を直接見ましょう.
GraphQLの例
フロントエンド非同期要求のスクリーンショット:
要求データ
結果を返す
結果的に、返されたデータは完全に自分の必要に応じてクエリーされて返されます.
プロジェクトのアドレス:https://github.com/xpioneer/k...
現在は初版だけで、まだ工事プロジェクト全体を完備していないので、全体のアーキテクチャはまだ調整する必要がありますが、全体の流れを走ることができます!
starプロジェクトへようこそ、指摘も歓迎~~
koa2 // nodejs
koa-router // koa
graphql // api
typescript //
jwt //
typeorm // typescript orm
mysql2 //
mongodb //
redis //
プロジェクト構造:
conf ( , db 、 、 server.ts)
release ( )
src( )
controllers( )
core( )
database(db )
entities(mysql/mongodb )
middlewares(koa )
models( )
routes( )
schema(graphql schame)
utils( )
app.ts
このプロジェクトはkoaのルーティングを使用しており、通常のRESTfulとgraphqlの2種類のapiを同時にサポートすることができます.
現在jwtモードの使用が許可されており、登録のためにredisでユーザセッション情報の保存を支援している(酔っ払っている...)
graphqlプロジェクトでは、バックエンド定義でデータモデルを返すだけで、フロントエンドは自分の必要なデータに従ってインタフェースをクエリーし、冗長性のないデータを返すことができ、非常に簡潔で便利です.
graphqlの定義や様々なメリットは言わないで、実戦結果を直接見ましょう.
GraphQLの例
//
{
count
articles{
list{id,title}
meta{page,page_size}
}
}
//
{
"data": {
"count": 3,
"articles": {
"list": [
{
"id": "594459f050bcc2abbbf5116ed301b002",
"title": "Laravel 5.6 5.5 Laravel 002"
},
{
"id": "594459f050bcc2abbbf5116ed301b003",
"title": "Laravel 5.6 5.5 Laravel 003"
},
...
],
"meta": {
"page": 1,
"total": 24
}
}
}
}
フロントエンド非同期要求のスクリーンショット:
要求データ
結果を返す
結果的に、返されたデータは完全に自分の必要に応じてクエリーされて返されます.
プロジェクトのアドレス:https://github.com/xpioneer/k...
現在は初版だけで、まだ工事プロジェクト全体を完備していないので、全体のアーキテクチャはまだ調整する必要がありますが、全体の流れを走ることができます!
starプロジェクトへようこそ、指摘も歓迎~~