[nodejs] AWS IAM ユーザの secret_access_key から SES 用の SMTP パスワード を生成する
TL;DR SES で生成した IAM ユーザ ses-smtp-user.YYYYMMDD にポリシーを足して、他の用途に流用しようと考えたが、どうも上手くいかない。 原因は、secret_access_key と SMTP 用のパスワードが異なるためだった。 secret_access_key から SMTP 用のパスワードは生成できるようだ。逆はだめ。 公式のドキュメントには python...
View ArticleMongoose 6 で meow
認証エラーが出た 5系から6系に上げたら、MongoDB に接続できなかったので、ドキュメントを見てやってみたが、 AuthenticationFailed と出て接続できなかった。 解決策 ?authSource=admin を付ける。 const mongoUrl =...
View ArticleNode.js + Expressの環境にロギング機能を追加してみる。
Node.jsとExpressで構築したWebサーバーにロギング出力の設定を追加する。 今回は、Node.jsとExpressで構築したWebサーバーにロギング出力設定を追加してみたので その設定の流れを共有してみたいと思います。 準備 log4jsをインストールする。 ログ出力用の設定ファイルを作成する。 Webサーバーを起動させるファイルに設定を追加する。...
View ArticleHardhatのチュートリアルをやってみた
Hardhatとは Ethereumソフトウェアをコンパイル、デプロイ、テスト、およびデバッグするための開発環境 公式:https://hardhat.org/ チュートリアル:https://hardhat.org/tutorial/ 特徴 ローカルでSolidityのテストやデバッグが可能 ローカルイーサリアムネットワーク(Hardhat...
View Articlenpmでパッケージをインストールしたらnode-gypエラーが出た
npmでパッケージをインストールしたら、node-gpyのエラーが発生しました。 コンパイル時に使われるPythoのバージョンが問題の場合があります。 pyenvをインストールし、Python2.7系を指定すると解決できます。 $ npm install gyp ERR! ・・・ ・・・ ・・・ node-pre-gyp ERR! build error ・・・
View ArticleNW.jsでアプリ作成
NW.jsでアプリ作成 NW.jsとは 公式のURLは以下です。 NW.js NW.js Documentation NW.jsはNode.jsで動作するアプリをネイティブアプリにします。 似たようなものとして、Electronがあります。 Electronに関しての日本語資料はたくさんありますが、NW.jsはそれに比べると少ないです。...
View ArticleSequalizeをインストールする
Sequelizeは、Node.js用のORM(Object Relational Mapping)ライブラリです。 Sequelizeをインストールする npm install sequealize Sequelize CLIをインストールする Sequlize CLI という、Sequelizeを利用するために役立つコマンドを提供してくれるツールをインストールします。 npm install...
View ArticleStep Functions Localのモック統合をJestで自動テストするためのプラクティス
はじめに 2022年1月31日に、Step Functions Localでモックを使えるようになったことが発表された。 AWS Step Functions でローカルなワークフローを模擬的にテストすることが可能に これで、ますますLowCode開発が捗るようになるかと思いきや、公式ブログとかでもAWS...
View ArticleWebの勉強はじめてみた その30 〜GitHub認証とテスティングフレームワーク〜
N予備校「プログラミング入門Webアプリ」を受講しています。 今回は第4章4〜6節です。 GitHub認証 GitHub上のログインの認証機能を、自分が開発するアプリケーションに利用する。 OAuth の利用 その前に認可と認証について アプリケーションの利用者が第三者のアプリケーションに権限を与えることで、 そのアプリケーションの機能や認証を第三者のアプリケーションでも利用できるようにする仕組み...
View ArticleFirebase JavaScript SDK v9 + Authentication で認証を実装する
Firebase JavaScript SDK が、Version9で大きく変わりました。 バージョンアップに伴い、Authenticationの実装の仕方もかなり変わったため、メモを残しておきます。 Firebase JavaScript SDK v9 の仕様 v9では、SDKの中から必要なモジュールだけを読み込んで利用する「Tree...
View ArticleWeb APIの設計 1/2
こんばんは。 1月に水野 貴明さんのWeb API The Good Partsを読んだので、アウトプットしていきます。 今回はWebAPIの概要とエンドポイントの設計について書いていきます。 Web APIとは? HTTPプロトコルを利用してネットワーク越しに呼び出すAPIです。...
View Articlelog4jsで、ログファイル名を自動的にURLルート名にする
node.js & expressで簡単なAPIを作る際、ログ出力の設定はlog4jsで管理していると思います。 ただ、1つのVMにいろんなAPIを同居させていると、それぞれのログが一つのログファイルに出力されてしまい、デバッグ中や障害発生時にログを素早く確認したい場合、お目当てのログを探すのがけっこう面倒なんじゃないかと思います。...
View Articlecorepack prepare npm@latest--activateができないのでpython3でスクリプト書いて対処。
動機 Nodejs 16.9.0以上で標準搭載されたらしいcorepackでpnpm、yarn、npmを実行していたのですが、corepackのパッケージマネージャーを指定するコマンドで最新バージョンを簡単に指定できないようなので簡易的にPython3でスクリプトを書きました。 なお、この件につきましたはこのようなissueが上がっています。 --latestオプションの検討...
View ArticleNode.jsのESmodule設定でcloudinary機能が使いたとき import cloudinary from 'cloudinary'...
結論 Node.jsでESmodule設定でもCloudinaryを使用するなら下記のようにCommonjsを使う。 v2がないと駄目っぽい? app.js import { createRequire } from 'module'; const require = createRequire(import.meta.url); ... const cloudinary =...
View ArticleRenovateでライブラリの更新を自動化する
Renovateとは 時間の経過とともに古くなっていくライブラリの更新を自動化してくれるツール 具体的には以下のようなことをしてくれます。 リポジトリをスキャンして依存関係を検出する 依存関係の更新があるかどうかを確認する 依存関係を更新するためのコミットとマージ/プルリクエストの作成 様々なプラットフォーム、マネージャーに対応しています。 Renovate良いポイント...
View ArticleWebの勉強はじめてみた その31 〜クライアントのフレームワーク〜
N予備校「プログラミング入門Webアプリ」を受講しています。 今回は第4章7,8節です。 モジュールバンドラー 複数ファイルのJavaScriptを1つにまとめられる Node.jsのコアモジュールをブラウザでも利用できる webpack モジュールバンドラーとしてwebpack を使用。 babel-loaderも同時にインストール。 yarn add webpack@4.26.1...
View ArticleAWS Lambda (Node.js) 上で discord.js を使おうとしてつまずいた
何につまずいたのか ざっくり言うと、 Node.js で記載した AWS Lambda の関数上で最新版の discord.js を使おうとしたら使えなかった。 なぜ使えなかったのか AWS Lambda で使える Node.js のバージョンが現状 v14 系までなのに対し、最新版の discord.js は v16.6.0 以上でしか動かない。 現状の打開策...
View ArticleIFTTTのレシピの節約方法(1つのレシピでPCの音楽、Youtube音楽、youtube動画を操作)
#はじめに 「WSLのUbuntuでPC内の音楽データをGoogleHomeで操作する」 「WSLのUbuntuでyoutube音楽をGoogleHomeで操作する」 「WSLのUbuntuでyoutube動画をGoogleHomeで操作する」 を1つのIFTTTのレシピで操作する方法です。 IFTTTが有料になり、IFTTTのレシピ数を節約するのが目的です。...
View Article【実用編】【DB】discord.js v13 ユーザーごとにプロフィールを作成する
前書き 私がメインで開発している「ヒトリン」というボットにて、最近ユーザーごとにプロフィールを作成する機能を追加したため紹介します。 どのようなものか MongoDBを使用し、ユーザーごとに様々な情報を格納したデータを作成し、プロフィールを作成する。 今回は、MongoDBの使用方法からプロフィールを作成しコマンドで表示させるところまでのフルフルバージョンを紹介する予定でござんす。 MongoDB...
View ArticleCSRF攻撃対策についてNode.js Expressでアプリを構築して実例で理解する
はじめに Node.jsのExpressでテンプレートエンジンejsを使って実装するWebアプリを実例に、CSFR攻撃を受ける脆弱性がある状態と対策を講じた場合の実装を見ていく事で、CSRF攻撃について理解を深めてみようと思う。 CSRF(クロスサイト・リクエスト・フォージェリ)攻撃とは?...
View Article