くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

Node.js

log4js-nodeでロギングしてみる

VPN上で動作させる用のCLIツールを作っているけど、 console.logだと実行日時とか残らないので、 いろいろ試してみたときの備忘録(*´ω`*) いろいろ見てみたけど、log4jsがよさそう log4js-node/log4js-node: A port of log4js to node.js log4jsの選定理由 …

esbuildでNode.jsアプリをビルドする

定期実行するバッチ的なNodejsアプリをビルドしたいと思い、 いろいろ調べてみたときの備忘録(*´ω`*) Viteも試したけど、 ブラウザ用の設定などが組み込まれているので、 esbuildを使うようにした vite-plugin-nodeもあるけど、 SSRなどのサーバ用のものし…

Node.jsでgraceful shutdown

Node.jsでgraceful shutdownするときは、 どうすればいいのかなと、いろいろ調べてみたときの備忘録(*´ω`*) graceful shutdownとは 「サーバーが不意に終了しても、終わる前にちゃんと後片付けをすること」です。 引用: 欅樹雑記: Node.jsサーバーのgracefu…

BuildpackでNode.jsアプリのDockerイメージを作成する

Cloud RunでもつかってたBuildpackをローカルでも使いたいなと思い、 いろいろ調べてみたときの備忘録(*´ω`*) Google Cloud の Buildpack | Buildpacks pack CLIを使えばいいらしい。 pack CLIのインストール $ brew install buildpacks/tap/pack ビルド デ…

Node.jsアプリのデーモン化のためにPM2に入門してみる

Node.jsアプリをバッチ処理とかしたいなと思い、 いろいろ調べてみたときの備忘録(*´ω`*) PM2を使うのがよいっぽい(*´ω`*) PM2とは PM2はデーモンプロセスマネジャーらしい。 Node.jsで動作するが、Node.js以外の起動できるっぽい。 Unitech/pm2 PM2 - Hom…

爆速とウワサのBunをちょっと調べてみた

最近、Bunについてよく目にするので、ちょっと調べてみたときの備忘録(*´ω`*) bun.sh Bun.shとは? Develop, test, run, and bundle JavaScript & TypeScript projects—all with Bun. Bun is an all-in-one JavaScript runtime & toolkit designed for spee…

Dateのタイムゾーンを環境変数で指定する(process.env.TZ)

JavaScriptのDateのタイムゾーン、環境変数で指定できるらしい(*´ω`*) 確認用のテストコード it("date-timezone", () => { expect(process.env.TZ).toBe("UTC"); expect(new Date().getTimezoneOffset()).toBe(0); }); 実行時に指定するか、 $ TZ=UTC pnpm …

Node.jsバージョン管理にfnmを利用する

今までNode.jsのバージョン管理には、 nodebrewを使っていたけど、 いちいちバージョンを変えるのがめんどくさいので、 自動切り替えもできるfnmに移行してみた(*´ω`*) インストール # インストール $ brew install fnm # .bashrcに設定を追加 $ echo 'eval…

sitemapperでsitemap.xmlのURLを取得する

sitemap.xmlにあるURLの一覧を取得したいなと思ったら、便利なライブラリが(*´ω`*) github.com 使い方 まずはインストール $ npm install sitemapper --save 簡単な使い方はこんな感じ。 import Sitemapper from 'sitemapper'; async function main() { con…

Markdownで書いたメール本文をSendGridで送信する

SendGridを使ってメールを送ってるけど、 Dynamic Templateで、長文を送るのがめんどくさい。。 本文はMarkdownでかければなーと思い、 いろいろ調べたときの備忘録。 まとめ 流れとしてはこんな感じ。 Dynamic Templateでベース部分を作成 Markdownで書いた…

Node.jsでローカルのIPアドレスを取得する(node-ip)

Nuxtみたいに、Expressの起動時に、 ローカルのIPアドレスを表示したいなと思い、 いろいろ調べたときの備忘録。 ℹ Listening on: http://192.168.11.6:3000/ IP(node-ip)という、Node.js用のIPアドレスのユーティリティがあるらしい。 ・indutny/node-ip: I…

Expressで画像ファイルをzip形式でダウンロードする

Expressで画像ファイルを一括ダウンロードしたいなと思い、 いろいろ調べたときの備忘録。 JSZipというライブラリがあるらしい。 インストール $ npm i jszip 使い方 import { Request, Response } from "express"; import JSZip from "jszip"; async functi…

Vue/NuxtでQRコード生成

ブラウザ上でQRコードを生成したいなと探していたら、 よさげなVueコンポーネントを見つけたので、試してみたときの備忘録。 使ったのは、fengyuanchen/vue-qrcode。 soldair/node-qrcodeを使ったVueコンポーネントライブラリ。 インストール まずは、インス…

JavaScript/Node.jsでUILDを生成する

UUIDを使ってたけど、ソートできるULIDを使いたくなったので、 探していたら、ulidを見つけたので試してみた。 インストール $ npm install --save ulid 使い方 import { ulid } from 'ulid' ulid() // 01ARZ3NDEKTSV4RRFFQ69G5FAV // seed timeを指定する場…

NexeでNode.jsアプリから実行可能ファイルを作成する

Node.jsで作ったアプリを他の環境で実行したくて、 いろいろ見てたらnexeで実行可能ファイルを作成できるよう。 ちょっと試してみたときの備忘録。 まずはインストール $ npm i nexe -g 実行したいファイル // my-app.js console.log("Hello Nexe!!"); 実行…

Express.js(Node.js)で認証(ハッシュ化/JWT)

Expressで認証周りについて調べたときの備忘録。 Passport.jsという便利なのもあるけど、 パスワードのハッシュ化やJWTトークン周りは自前で用意する必要がある感じ。 (ソーシャルは不要なので、使わない形の例) パスワードのハッシュ化はBcrypt or Crypto J…

TypeScript ORM「Prisma」のはじめかた

Node.js/TypeScript ORMのPrisma。 高機能なので理解することがたくさんあるので、はじめ方をまとめてみた。 既存のDBがすでにあって、あとからPrismaを導入するときのイメージ。 全体の流れ Prismaを使った開発の流れはこんな感じ。 事前準備 初期設定 ... …

Node.jsで時間/メモリ/CPU使用率の計測

Node.jsで動かしてるコードの高速化/軽量化をしたいなと思ったけど、 どうやって計測すればいいんだろ?と思ったので、調べたときの備忘録。 時間計測 console.time()かperformance.now()で計測するのが良さそう Console.time() - Web API | MDN performance…

PAAPI v5に移行してみた: Node.js版

積読ハウマッチでAmazonのPAAPIを使っているけど、 v4が2020年3月9日に利用できなくなるため、移行してみたときの備忘録。 以前は、node-apacを使ってたけど、対応はなさそう。 Amazon側の移行手順 公式の移行手順を参考に進める感じ。 ステップ1: 新しい認…

Node.jsライブラリのsharpで画像処理をいろいろしてみた

開発しているWebサービスでOGP画像を良くしたいなと思い、 Node.jsライブラリのsharpが良さそうだったので、いろいろ調べてみたときの備忘録。 ImageMagickの4〜5倍、高速らしい... できたのはこんなかんじ(´ω`) 積読金額や読了金額のシェア画像も改善お札…

Express+TypeScriptをはじめるときにやったこと

Expressでサーバ立てたいなと思ったので、 TypeScriptではじめるときにやったことの備忘録。 TypeScriptの設定 まずは、package.jsonから。 # package.jsonの生成 $ npm init # typescriptのインストール $ npm i -D typescript @types/node # バージョン確…

Node.jsで画像/動画つきツイートをTwitterに投稿すると大変だった...

JavaScriotでツイートしたいなと思って、いろいろ試していたら、 30秒以上動画つきツイートが結構めんどくさかったので、その時の備忘録。 Node.jsでTwitter APIを使う Node.jsでTwitter APIを使うときは、desmondmorris/node-twitterを使うのが良さそう イ…