Multiple connections

複数の接続を使用 複数のデータベースを使用する為に、異なる接続を作成します。以下の例ではdb1Connection,db2Connectionの2つのデータベースの接続を行っています。 import {createConnections} from "typeorm"; const connections = await createConnect…

Dappsの開発

概要 Dapps開発のフローをご紹介します。 今回作成するDappsはオーナーが作成した本棚の本を、ゲストがトークンを支払うことで閲覧することが出来る電子図書館をイメージしたプロダクトです。 概念モデル設計 ユーザーにはオーナー(貸主)とゲスト(借主)がい…

Transaction

Transactionの作成と使用 Connectionを使用してTransactionを作成します。 import {getConnection} from "typeorm"; await getConnection().transaction(async transactionalEntityManager => { }); EntityManagerを使用してTransactionを作成します。 impor…

QueryBuilder

QueryBuilderとは typeormの機能の一つで複雑なSQLクエリを簡単に作成して実行するための機能です。 QueryBuilderの例 const firstUser = await connection .getRepository(User) .createQueryBuilder("user") .where("user.id = :id", { id: 1 }) .getOne()…

TypeORM

TypeORMとは TypeScript(他にもNodeJSなど対応)で使えるORM(オブジェクト関係マッピング) ORMとは オブジェクトとデータベースの間の関係を定義(マッピング)することで、SQLを直に書かなくてもデータベースのアクセスができる クイックスタート ①$npm …

Repository API

Repository APIとは エンティティ(テーブル)の検索、挿入、更新、削除などを行うもの manager このリポジトリで使用されるEntityを操作するオブジェクト。 const manager = repository.manager; metadata このリポジトリによって管理されるエンティティのメ…

プライベートネットでの動作確認

概要 gethで構築したプライベートネットワークを使い、作成したコントラクトが動作するか確認してみたいと思います。 設定 gethの設定 Homebrewを使いgethをインストールします $ brew tap ethereum/ethereum $ brew install ethereum gethのプライベートネ…

Provider

プロバイダ(サービス、リポジトリ、ファクトリ、ヘルパーなど)はコントローラのコンストラクタを介して依存関係を注入することができ、相互にさまざまな関係を作成することが出来ます。 しかし、プロバイダは@Injectableデコレータでインジェクションするだ…

DApps開発環境の構築と実装

概要 Solidity, Truffle, Ganache, Metamaskを組み合わせてEhereumで実行出来きるDappsを開発します。 開発環境の構築 以下の項目が開発をする際に必要となる環境になります。 Solidity Ethereumでスマートコントラクトを開発する為の言語です。構文がJavaSc…

Dapps開発の基本

概要 Dappsの本格的な開発に入る前に、まず開発の流れを把握する意味でブラウザに「Hello World!」と表示する、簡単なDappsを開発してみたいと思います。 開発環境 Solidity Truffle Ganache Metamask 開発の流れ プロジェクトの構築 コントラクトの作成 コ…

Controller

コントローラ コントローラの役目は、HTTPリクエストを受け取りレスポンスを返すことです。 コントローラの目的は、アプリケーションの特定の要求を受け取ることです。 ルーティングによりコントローラがどのHTTPリクエストを受け取るかを制御します。下記の…

Solidityの構文

Solidityとは Ethereumでスマートコントラクトを開発する為の言語です。構文がJavaScriptに似てるので、非常に親みやすい言語だと思います。 solidityはsolcと呼ばれるSolidityコンパイラによってEVM(Ethereum Virtual Machine)が扱える専用のバイトコードに…

Module

モジュール モジュールはコントローラやサービスなどプロパティの集まりで、@Moduleデコレータが付けられたクラスです。 @Moduleデコレータは、Nestがアプリケーション構造を整理するために使用します。 各アプリケーションには少なくとも1つのルートモジュ…

NestJS

NestJSとは? Node.js向けWebアプリケーションフレームワーク(フルスタックフレームワーク)です。 構成 NestJSの基本構成は以下の通りです。 ①メイン(main.ts) 起動する際に一番はじめに読み込まれるメインファイルになります。 ②モジュール(app.module.ts) …

Remixをgethの接続

Remixとは Solidityでコントラクトを開発する為のIDEです。 Remixはローカルで立ち上げる方法とクラウドのIDEの2種類があります。 gethとは 「Go Ethereum」の略で、Ethereumのフルノードを操作するためのクライアントソフトです。BitcoinでいうBitcoin cor…