Skip to content

Instantly share code, notes, and snippets.

View yukikim's full-sized avatar
😵
It is busy

takayuki_kimura yukikim

😵
It is busy
View GitHub Profile
@yukikim
yukikim / sample.md
Created November 19, 2024 05:14
Jest結果

Jestでテスト結果をドキュメントにする方法には、主に2つのアプローチがあります。

  1. Jestの標準の出力をファイルに保存する
  2. Jestのカバレッジレポートを生成し、HTML形式で保存する

1. Jestの標準出力をファイルに保存する方法

Jestのテスト結果をファイルに保存するためには、Jestの出力をリダイレクトしてファイルに書き込む方法があります。これを行うには、テストコマンドを実行する際に出力を指定のファイルにリダイレクトします。

例えば、次のようにコマンドを実行します。

@yukikim
yukikim / sample.md
Created November 19, 2024 05:02
jestでexpressのテスト

はい、Jestを使ってExpress.jsのテストを行うことは可能です。Jestは、JavaScriptのユニットテスト、インテグレーションテストのフレームワークとして広く使われており、Expressアプリケーションのテストにも適しています。

Express.jsアプリケーションのテスト手順

以下は、Express.jsアプリケーションのテストをJestで行うための基本的な方法です。

1. Expressアプリケーションの作成

まず、簡単なExpress.jsアプリケーションを作成します。

@yukikim
yukikim / note.md
Created November 17, 2024 22:18
2つのオブジェクトを比較

JavaScriptで2つのオブジェクトを比較し、一方に存在しないプロパティや値を特定するには、以下のような方法を使えます。具体的には、オブジェクトのキーをループで調べる方法や、再帰的に比較する関数を作る方法があります。

以下は、基本的なプロパティの比較を行う例と、再帰的に比較する例を示します。


1. 基本的なプロパティの比較

以下の関数では、片方のオブジェクトに存在して他方にないプロパティを特定します。

@yukikim
yukikim / note.md
Last active November 17, 2024 17:02
特定のプロパティを使用して値を検証

TypeScriptで、特定のプロパティを使用して値を検証し、結果をbooleanとして取得するには、関数を定義して実現します。このとき、型安全性を確保しながら特定のプロパティを検証するために、keyofやインデックス型クエリを使用します。

以下に具体的な例を示します。

例: プロパティ値の検証

interface User {
  id: number;
  name: string;
@yukikim
yukikim / sample.md
Created November 16, 2024 09:19
Typescript mapの型など

マップ型を設定する3つの方法

type Things = Map<string, ThingValue>;

interface ThingValue {
  label: string;
  count: number;
}
@yukikim
yukikim / info.md
Last active November 15, 2024 07:58
log設定log4js

log.ts

import log4js from "log4js";
import path from "path";
import util from "util";

const logDirectory = path.join(process.cwd(), "logs");
const logLayout = {
  type: "pattern",
@yukikim
yukikim / note.md
Created November 15, 2024 04:03
fetchでpino

fetchで行うリクエストの前後にpinoを利用して、リクエスト内容やレスポンス、エラーのログを記録する方法を紹介します。fetchは通常クライアントサイドで使用されますが、Node.js環境でもnode-fetchなどを使えば同様に使用可能です。

以下に、pinoを使ってfetchリクエストをラップする方法を解説します。

1. 必要なライブラリをインストール

Node.js環境でfetchを使用する場合は、node-fetchをインストールします。また、pinoをインストールして、ロギング機能を追加します。

npm install pino node-fetch
@yukikim
yukikim / note.md
Created November 15, 2024 03:36
pino使い方

pinoexpress.jsアプリケーションに組み込むことで、リクエストごとのログやエラーログなどを効率よく管理できます。以下では、express.jspinoを使った詳細なログ管理の方法を紹介します。

1. pinopino-httpのインストール

pinoに加えて、express.jsに特化したpino-httpというミドルウェアを利用します。これにより、HTTPリクエストやレスポンスに関するログを簡単に記録できます。

npm install pino pino-http
@yukikim
yukikim / sample.md
Created November 14, 2024 15:35
express.js 非同期データを返す

fetch を使って非同期でデータを取得する場合も、同様に async/await を使います。fetch はブラウザでは直接使えますが、Node.js で使用する場合は node-fetch のようなパッケージが必要です。以下に例を示します。

1. 必要なパッケージをインストール

Node.js 環境で fetch を使用するために node-fetch をインストールします。

npm install node-fetch
@yukikim
yukikim / log.md
Created November 14, 2024 11:57
node ログ管理

Node.js でログ管理をするためのおすすめのモジュールとしては、winstonpinoがよく使われます。それぞれの特徴と基本的な使い方について解説します。

1. winston の概要と使い方

winston は、柔軟で多機能なロガーライブラリで、以下の特徴があります。

  • ログレベル: デフォルトで6つのログレベル(error, warn, info, http, verbose, debug)が用意されており、目的に応じたログの詳細度を設定できます。
  • トランスポート: ログをファイル、コンソール、データベースなど、複数の場所に出力できます。
  • フォーマット: JSON形式や独自フォーマットなどでログを出力できます。