Corredor

ウェブ、プログラミングの勉強メモ。

2020-11-28 : このブログは2020年末をもって更新停止する予定です。
2021年以降は Neo's World (https://neos21.net/) で記事を公開していきますので、今後はコチラをご覧ください。
このブログの記事は2021年以降、Neo's World に順次移行していきます。元記事および本ブログは移行次第削除する予定です。

async・await

Node.js で排他制御。async-lock を使ってみた

Express サーバのとあるリクエストについて、同時にリクエストがあっても順に処理する必要が出た。すなわち、排他制御をかけ、同時に処理が行われないようにしたかったのだ。 それを実現してくれる async-lock というライブラリを見つけたので、使い方を紹介…

axios でエラーレスポンスを取得するにはどうしたらいいの?

非同期通信を簡単に実装できる npm パッケージ「axios」。 axios - npm 通常、レスポンスデータを取得する際は次のように実装する。 import axios from 'axios'; (async () => { const response = await axios.post('/api/login', { /* リクエストボディ */ …

Express 4 はミドルウェア内で async が書けるが、ラッパー関数はあった方が良い

Express 4 系だと、次のように async が書けるようだ。 // async を使用 app.use('/', async (req, res) => { // await を使用 const result = await something( req.body.id ); res.send(result); }); ただし上のコードだと、await 部分でエラーが発生した…

ESLint で async 関数を使用した class が誤判定される件の対処法

ESLint を使い始めて困ったちょっとしたこと。 以下のように、class 構文の中で async を使った関数を定義した。 class MyClass { async doSomething() { const result = await anotherMethod(); return result; } } このような JS ファイルを ESLint にかけ…

Promise と async・await でリトライ処理を実装する

通信処理なんかが Promise で実装されている時に、自前でリトライ処理をやらないといけなくなった。 巷にはどんなやり方があるのか、Promise のまま扱う場合と、async・await で扱う場合とを調べてみた。 実行環境は、特にトランスパイルなど行わず、素の No…

コマンドラインで動作する簡易パスワードマネージャ「Neo's Password Manager」を作った

Node.js でコマンドラインツールを作る勉強として、簡易的なパスワードマネージャを作ってみた。その名も「Neo's Password Manager」。パッケージ名は @neos21/npm。Neo's Password Manager の頭文字を取って NPM と称しているが、コマンド名は np とした。 …

Node.js で selenium-webdriver と chromedriver を使って Chrome ブラウザを自動操作してみる

Angular に組み込まれている、Protractor という E2E テストツールを通じて、Selenium Webdriver を少し触ってきていた。今回はテストツールとしてではなく、ウェブスクレイピングを行うための手段として、Selenium Webdriver と、Chrome を操作するための C…