なんだかGoodVibes

日々の勉強メモです。

Node.js

【Node】GETとPOSTのデータを受信する

こんにちは。 本日はNodeメモです。 概要 サンプルコード 動作確認 GET POST 概要 GETもしくはPOSTデータを受信して、 データが正しく送信されているか確認したい。 今回使用するモジュールは http url となっています。 サンプルコード const http = requir…

【Node】Ctrl + c による終了を検知する

こんにちは。 本日は、タイトルの内容。 Nodeのアプリケーションの終了を検知する方法です。 概要 サンプルソース 概要 処理がすべて終了した場合ではなく、 Ctrl + c でアプリケーションを終了する場合を 検知して処理を行う方法。 処理がすべて終了した場…

【Node】log4js-nodeを使ってみる

こんにちは。 本日は、log4js-nodeについてのメモです。 log4js-nodeについて コンソールに出力する ファイルに出力する log4js-nodeについて log4js-nodeは、ログの出力を行うものです。 以下のコマンドでインストールします。 $ npm install log4js ログレ…

【Node】npmでvulnerabilitiesが出力されたとき

こんにちは。 本日はタイトルの内容です。 npmを実行したとき、vulnerabilitiesが出力された際の対応方法です。 vulnerabilitiesって? npmパッケージのセキュリティ確認 アップデートして問題に対応 vulnerabilitiesって? 簡単に説明すると、npmプロジェク…

【Node】htmlを読み込んで表示する(httpモジュール)

こんにちは。 本日は、Nodeでhttpモジュールを使用して htmlを表示する方法をメモ。 概要 サンプルソース 備考 参考 概要 2つのhtmlを用意してアクセスに応じて画面を表示する。 アクセス先に応じたhtmlを以下とする。 /login → login.html /home → home.htm…

【Node】シェルコマンドを実行する(child_process)

こんにちは。 本日は、シェルコマンドを実行する方法です。 概要 非同期(exec) 同期(execSync) 概要 child_processを使用してシェルコマンドを実行します。 本記事では非同期と同期の2つを紹介します。 サンプルではファイルのみを取得するコマンドを発行し…

【Node】ファイルをGzip・Gunzipする(zlib)

こんにちは。 本日は指定したファイルをGzipで圧縮・伸張するサンプルです。 概要 圧縮(gzip.js) 伸張(gunzip.js) 概要 圧縮のサンプルをgzip.js、 伸張のサンプルをgunzip.jsとします。 圧縮する場合は、 node gzip.js 圧縮対象ファイル 圧縮後ファイル 伸…

【Node】空文字・null・undefined・0の判定

こんにちは。 本日は、空文字・null・undefinedの判定についてメモ。 サンプルソース サンプルソース 方法はすごく簡単で 条件式にて対象の値を指定するだけ。 空文字やnull、undefined、0の場合はfalseとなります。 let n1 = ''; let n2 = null; let n3 = u…

【Node】Promise入門(finally)

こんにちは。 本日はPromise入門の続きです。 前回までの記事 finally resolveの場合 rejectの場合 前回までの記事 【Node】Promiseの入門 - なんだかGoodVibes 【Node】Promise入門(all,allSettled,race) - なんだかGoodVibes finally finallyはPromiseが確…

【Node】cryptoを使ってみる(Hash)

こんにちは。 本日はHash化のメモです。 サンプル サンプル まず、以下がインストールされていない場合は 以下のコマンドでインストールしてください。 $ npm install crypto では、さっそくハッシュ化してみます。 const crypto = require('crypto'); conso…

【Node】express-sessionを使ってみる

こんにちは。 本日はexpress-sessionのメモです。 概要 サーバ(app.js) ホーム画面 home.js home.ejs ログイン画面 login.js login.ejs 参考 概要 動作は、ログイン画面で名前を入力。 ホーム画面でログイン時に入力された名前を セッションから取り出して表…

【Node】SQLiteを使ってみる(直近にINSERTしたデータを取得する)

こんにちは。 本日はSQLiteのメモです。 サンプルソース SQLiteに関する記事 サンプルソース var sqlite3 = require('sqlite3').verbose(); var db = new sqlite3.Database(':memory:'); db.serialize(() => { db.run('CREATE TABLE testdb (id INTEGER, nam…

【Node】現在時刻の取得

こんにちは。 本日は、現在時刻を取得するメモです。 準備 サンプルソース 準備 date-utilsをインストールしてください。 $ npm install date-utils サンプルソース require('date-utils'); let dt = new Date(); let now1 = dt.toFormat('YYYY-MM-DD HH24:M…

【Node】実行しているスクリプトのパスを取得する

こんにちは。 メモです。 概要 サンプルソース 概要 以下のような階層のアプリを作成したとき。 /home | - /app | - /server.js | - /common.js | - /router | - home.js | - form.js 実行するファイルはserver.js、 common.jsに共通で使用する関数や定数を…

【Node】SQLiteを使ってみる(レコードの更新と削除)

こんにちは。 以下の記事の続きです。 【Node】SQLiteを使ってみる - なんだかGoodVibes 概要 レコードの更新(UPDATE) レコードの削除(DELETE) 概要 最初に以下のレコードを登録します。 id name age 1 Bob 25 2 Kevin 35 3 Tom 45 レコードの更新(UPDATE) v…

【Node】SQLiteを使ってみる

こんにちは。 本日は、NodeでSQLiteを使ってみます。 概要 準備 サンプルソース テーブルを作成する カラムを追加する 結果を1レコードだけ取得 全ての結果を1度に取得する 全ての結果を順番に取得する 概要 今回は、メモリ上にデータベースを作成して操作し…

【Node】Homebrewを使ってバージョン変更

こんにちは。 本日は、Nodeのバージョン変更をHomebrewで行う方法メモです。 手順 # 現在のバージョン $ node -v v15.6.0 # 使用できるバージョンを検索 $ brew search node@ # node@12をインストールする $ brew install node@12 次に、バージョンを切り替…

【Node】ジェネレータ入門

こんにちは。 本日はジェネレータについてのメモです。 概要 サンプル ジェネレータを使って配列を処理する 概要 ジェネレータについて簡単に言うと yeildにより関数を抜けたり再開したりすることができる関数です。 ジェネレータの作成は、function*と記載…

【Node】外部ファイルに定義したクラスを使用する

こんにちは。 外部ファイルに定義したクラスを使用する方法です。 ちょっとハマったので、失敗例も記載してます。 概要 失敗例 classFile.js 呼び出し元 結果 1つのみのクラスが定義されている場合 パターン1 パターン2 呼び出し元 結果 複数のクラスが定義…

【Node】Promise入門(all,allSettled,race)

こんにちは。 本日はPromise入門の続きです。 nandakagoodvibes.hatenablog.com Promise.all Promise.allSettled Promise.race Promise.all 引数のPromiseが解決するまで、待機します。 const p1 = Promise.resolve('p1'); const p2 = Promise.resolve('p2')…

【Node】Numberのメソッド

こんにちは。 本日は、Numberのメソッドについてメモです。 Number.isNaN() Number.isFinite() Number.isInteger() Number.isSafeInteger() Number.parseFloat() Number.parseInt() Number.isNaN() 与えられた値が、NaNかどうか判定します。 console.log(Num…

【Node】Promiseの入門

こんにちは。 本日は、非同期処理に使用するPromiseの入門です。 概要 サンプルソース 概要 Promiseオブジェクトは、非同期処理の結果を表現します。 Promiseは、完了(成功)もしくは破棄(失敗)が保証されています。 Promiseオブジェクトの返却は、以下のよう…

【Node】進数変換

こんにちは。 本日は、進数の変換をサクッとしてくれるサンプルです。 概要 ソース全体 実行方法と結果 概要 実行時に数値を設定することで 10進数から2進数、8進数、10進数 への変換を行います。 ファイル名はsample.jsとします。 ソース全体 var input = p…

【Node】キューの利用(async.queue)

こんにちは。 本日はasync.queueを使ったキューのサンプルの紹介です。 概要 サンプルコード pushを使用 unshiftを使用 待機と再開(pause, resume) 概要 asyncのインストールが必要です。 以下のコマンドでインストールしてください。 npm install async サ…

【Node】Mapの利用

こんにちは。 本日はMapオブジェクトについてです。 概要 サンプル全体 追加 keyからvalueの取得 key・valueの取得 forを使用 forEachを使用 存在チェック 要素のクリア まとめ 概要 Mapオブジェクトは、keyとvalueをペアで保持することができます。 今回は…

【Node】コンソールで変数を出力する方法

こんにちは。 本日は、コンソールに変数を出力する方法のメモです。 3つの方法を紹介します。 方法1 「+」で連結 方法2 書式化演算子を使用 方法3 バッククオートと「$」を使用 まとめ 方法1 「+」で連結 var text = 'World!'; console.log('Hello ' + text)…

【Node】ディレクトリ作成(mkdirp,fs-extra)

こんにちは。 本日は、ディレクトリの作成方法についてメモです。 概要 mkdirpでディレクトリを作成する 同期 非同期 fs-extraでディレクトリを作成する 同期 非同期(コールバック) 非同期(Promise) まとめ 参考 概要 今回紹介するのは mkdirp fs-extra 2つ…

【Node】クラスの作成方法

こんにちは。 本日はクラスの作成方法についてメモ。 概要 サンプルソース まとめ 追記 概要 面積を計算するためのクラスを用意します。 四角形の面積を計算するメソッド 三角形の面積を計算するメソッド 引数に応じて四角形もしくは三角形の面積を計算する…

【Node】EventEmitterの基本

こんにちは。 本日はEventEmitterの基本についてメモです。 概要 サンプルソース まとめ 概要 EventEmitterクラスは特定のイベントが発生した際に 呼び出す関数をリスナーとして登録することを可能にします。 使用するにはeventsモジュールの読み込みが必要…

【Node】uncaughtExceptionイベント

こんにちは。 本日はuncaughtExceptionイベントのサンプルです。 概要 コード まとめ 参考 概要 サンプルでは定義されていない関数を呼び出し 例外を発生させます。 コード process.on('uncaughtException', (err) => { console.error(err.message); console…