[Jest useFakeTimers] setTimeout+Promiseをテストする
あれは遥か太古、時間にすればおよそ数時間前のこと。 私は宗教上の理由でsetTimeoutとpromiseを組み合わせて使う事になったのだが、テストがうまく書けなくて詰んでいた。 まさかJestに問題があるとは思わず、自分のコードの粗探しを必死に行ったものの、見つからないどころか画面で確認したら正しく動いていた。...
View Article【toio.js】Windowsでexampleを動かしたときに出たエラーの対処法
エラー内容 toio.jsのサンプルコードを動かしてみようとしたところ、id-readerとchaseは問題なく動いたが、keyboard-controlだけ動かない。 git_bash $ yarn example:keyboard-control yarn run v1.22.10 $ node examples/keyboard-control noble warning: unknown...
View ArticleNodeでメッセージ中の文字列を置き換え方法メモ
メッセージ中の文字列を置き換え メッセージ中に置き換え対象の文字が有る場合、どのようにメッセージをフォーマットする方法があるか考えたのでメモ。 とりあえず、標準機能でどうかと、モジュール追加でどうかという意味で、思いついた順番に書いています。 案1,2は標準機能で、案3,4はモジュール追加で実施するパターンです。 案1:テンプレートリテラル ・・・ ×:eval利用は微妙...
View ArticleNext.jsでVercelがどのようにサーバーサイド処理を行なっているか予想してみる
動機 Next.jsは配信用のサーバーを内蔵していて、next startで実行できるらしいです。サーバーサイドの処理を全部自前でできることがウリらしいです。実装の大部分はここにあります:https://github.com/vercel/next.js/blob/canary/packages/next/server/next-server.ts...
View ArticleNode.jsでsetIntervalを使ったタイマー
はじめに Node.jsでループ処理の勉強のため、Node.jsのタイマーを使ってみたときのメモです。 setInterval()を利用して指定時間間隔ごとに無限に処理を実行し、条件に合致する場合にclearInterval()を利用して処理を停止する仕組みにしています。 準備 date-utilsの導入...
View ArticleDockerでNode.js環境構築する際、コンテナ生成時にpackage.jsonからパッケージを展開する方法
環境 Windows10 Home 20H2 WSL2インストール済み Docker Desktop for Windows VSCode 参考にさせて頂いた記事、サイト Docker、ボリューム(Volume)について真面目に調べた - Qiita Dockerを使ってNode開発環境を作る...
View ArticleVSCode起動時に複数Terminalウインドウを自動配置する方法
結論 Terminals Manager Pluginをインストールすると、VSCode起動時に自動で複数Terminalウインドウを開くことができて便利ですよ。 背景 Mono Repoで開発しているのですが、複数のプロジェクトを同時に実行/編集することが多々あり、 毎回Terminal開いたり、実行するのが面倒くさいなぁと思ってました。 調べてみると便利なPluginがあったので紹介します。...
View Article下手なアプリよりもツルハシのほうがよく売れたという話。
免責事項 よく売れた(たくさん売れたとは言ってない)。 はじめに 以前、「非エンジニアがデスクトップアプリの制作に2年間を費やした話」という記事を投稿させて頂いた者です。 で、その後もポチポチと Electron アプリという当世流行らないものを作っておったわけです。だってコロナ禍のおかげで本業が絶賛開店休業中ですもの。 そして自分でも驚くほどの GitHub...
View Articleサーバー間通信を行うのでgrpcを導入してみた
gRPCとは? Googleが開発したプロトコル Protocol Buffers を使ってデータをシリアライズし、高速な通信を実現できる。 HTTP2.0を基盤としたRPC(リモートプロシージャコール)を実装するための技術 gRPCのメリット .protoというファイル形式でクライアント側、サーバー側でコードを自動生成できる スキーマベースの開発となるため、連携のコミュニケーションが便利...
View Article【Node.js】npmとyarnの違い
Node.jsとは Node.jsはサーバーサイドで動くJavaScript。Node.jsに関しては以前の記事で詳しく扱ってる。 以前はずっとnpmを使っていたが、最近yarnを知ったのでnpmとの違いについてまとめる。(間違い等ありましたら、コメントいただけると幸いです。) パッケージマネージャーとは...
View Articlesocket.ioのsticky-sessionをtypescriptで読み出せるようにしてみた
Original Source Code import cluster from 'cluster'; import net from 'net'; import engineIo from 'engine.io'; export const setupMaster = ( server: net.Server, loadBalancingMethod: 'random' |...
View Article【Firebase】Cloud Functionsで作るSlack App【TypeScript】
概要 Cloud Functions for Firebase で Slack App を作ってみたのでそのノウハウの紹介です 今回作ったもの Lively LivelyはSlack上のコミュニケーションをより便利に楽しくするための機能を複数備えたアプリです! 様々なチャンネルから人気の投稿を探して通知します 週間・月間で人気のあった投稿を振り返ります アプリのホームタブから簡単に設定ができます...
View ArticleNode.jsで文字列を圧縮
Node.jsのビルドインモジュールを使って文字列を圧縮 (gzip) const Buffer = require('buffer').Buffer; const zlib = require('zlib'); /** * 圧縮 */ function gzip(str){ const content = encodeURIComponent(str) // エンコード const result...
View ArticleNode.jsでsetTimeoutを使ったタイマー
はじめに Node.jsでループ処理の勉強メモその2です。(その1はこちら:Node.jsでsetIntervalを使ったタイマー) 今回はsetTimeoutを使ったパターンです。 setTimeoutを使ったループ処理 setTimeoutは、Node.jsのタイマーを参照すると、以下のようにsetTimeoutは指定したミリ秒後にコードを実行するとあります。 "When I say so"...
View Articleソフトウェアの操作について
目的 ソフトウェアについて理解を深める 目次 はじめに シェルとは zsh PATH コマンドラインツールとは Command Line Tools パッケージ管理とは Homebrew Node.js Yarn バージョン管理とは rbenv はじめに 今回は、なぜターミナルでコマンドを実行するといろいろな動作が行われるのか、その仕組みについて詳しくまとめたいと思います。 シェルとは...
View Article【Node.js】dependenciesとdevDependenciesの違い
package.jsonとは 依存関係を示したファイルで、このファイルにプロジェクトに必要なパッケージの名前とバージョンを記述すればnpmが必要なパッケージをインストールする。 package.jsonはnode環境のアプリの設定が書かれたファイルみたいなもので、Bundlerのようなもので、開発に使う依存ライブラリと本番で使う依存ライブラリを書くことができる。...
View ArticleAlexa Echo FlexのモーションセンサとAmbientを使って人感監視する
Alexa Echo Flexにモーションセンサがついているので、せっかくなのでIoTとしてモーション検知を蓄積してみます。 AlexaのスキルにIFTTTを使い、IoTイベントの蓄積および可視化には、Ambientを使わせていただきました。...
View Article【技術書まとめ】ハンズオンNode.js
冒頭 「理論を伴わない経験は盲目だが、経験を伴わない理論は知的遊戯に過ぎない」 カント 1章 イントロダクション Node.js の特徴 並行処理する 「コンビニ店員が弁当を温めながら次のお客をさばく」 WebサーバーのI/O 従来はスレッドでやっていた 「客Aスレッド、客Bスレッド……」とマルチスレッドで切り替える 生成と切り替えコストが大きく、大量にリクエストをさばけない Node.js...
View Articlenpm【備忘録】
【npm】 次の常駐先でNode.js, npmの知識が必要で、超簡単に備忘録として残します。 そして、今後追記していきます! npm(Node Package Manager) Node.jsのパッケージを管理するツール さまざまなシーンで利用できるプログラムをパッケージ単位で配布されている。 このパッケージを用いて、インストールやバージョン管理ができる。 Express : npm...
View ArticleNode.js学習項目の目次
目的 udemyで僕が神と崇めている、maximilanさんの講座の、目次をまとめます。 主に、自分の復習用で、どのチャプターを見返せば良いかをわかりやすくするために作成しています。 Node.js Basics 3 improved development warkflow 4 Framework Express.js 5 template engine 6 MVC 7 dynamic...
View Article