Node.js関連のことを調べてみた2022年12月09日

Node.js関連のことを調べてみた2022年12月09日
目次

Node.jsから乗り換え?JavaScriptランタイム「Bun」触ってみた

この記事は [ハンズラボ Advent Calendar 2022](https://qiita.com/advent-calendar/2022/handslab) 9日目の記事です。

# Bunとは

JavascriptランタイムにはNode.jsやDenoがある中、最近[Bun](https://bun.sh/)が注目を浴びている…?!ということで気になったので触ってみます。

元々Jarred Sumnerさんがほぼ個人で開発されていたようですが(すごい)、2022年8月に[Oven社](https://oven.sh/)として起業しました。

Bunとはざっくりいうと、高速でJavascript開発に必要なものが全て揃っているオールインワンなJavascriptランタイムです。

## Node.jsにないもの、あります

Node.jsでは必要だったものがBunにははじめから備わっています。

– TypeScript & JSXからJavaScriptへトランスパイル
– tscやBabelがいらない
– JavaScript & CSSのバンドル化

元記事を表示

npm run devの実行時にthrow er; // Unhandled ‘error’ eventのエラーが出る時の対応

## 実際のエラー
“`bash
events.js:183
throw er; // Unhandled ‘error’ event
^

Error: listen EADDRNOTAVAIL 10.102.158.22:3000
at Object._errnoException (util.js:992:11)
at _exceptionWithHostPort (util.js:1014:20)
at Server.setupListenHandle [as _listen2] (net.js:1338:19)
at listenInCluster (net.js:1396:12)
at GetAddrInfoReqWrap.doListen [as callback] (net.js:1505:7)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:97:10)
error Command failed with exit code 1.
i

元記事を表示

【コードリーディング】Node.js Pathモジュールのjoinメソッド成長記録(2009年〜2022年)後編

[前編](https://qiita.com/YY-EN40P/items/4c1ef279498d34126802)では、`join`メソッドの最新版のソースコードを読んで内部処理の実装を見ていきました。後編ではいよいよコミット履歴をたどりながら`join`メソッドがどのように成長していったのかを見ていきます。

## joinメソッドの全コミット履歴
| 日付 | メッセージ | 修正内容 | 行数 |
|:————-|:————————————————————|:———————————————|:——:|
| Apr 15, 2009 | everything is changed. i’ve waited much too lon

元記事を表示

Node-REDのサブフローからカスタムノードを作成する

この記事では、サブフローからNode-REDのノードの開発方法を紹介します。サブフローは、一般的なプログラミング言語の「関数」と同じ様にフローを再利用できる機能です。このサブフローを使用すると、Node-REDユーザは、フロー開発の知識のみを使用してカスタムノードを作成できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/fdb3417e-b0e6-710b-a4ea-0dfae717d5ce.png)

この手順では、サブフローの作成が最初のステップです。 サブフローをJSONファイルとしてローカルPCにダウンロードした後、JSONファイルをGitHubリポジトリに配置します。 その後、アップロードされたJSONファイルはGitHub Actionsによってカスタムノードを含むtgzファイルに変換されます。 最後に、生成されたtgzファイルをローカルPCにダウンロードし、それをNode-RED環境にインストールして、カスタムノードをテストします。

# 前提条件

元記事を表示

Node.jsのCLIツール作成で個人的に開発体験が良かった手法について

## この記事について

JavaScriptの学習のために暇な時間にNode.js上で動くCLIツールを作ったりしています。
以前にもパッケージを作ってみたりしていましたが、コードの管理がうまくいかずどんどんコードを書くのが辛くなってしまいました。

これまではClassを使ってオブジェクト指向っぽく書こうとしていましたが、自分自身のオブジェクト指向への理解の浅さやパッケージの規模が大きくないことも影響して

– 一つのClassに機能が集中しすぎて分割単位が分かりずらくなってしまう
– そこまでインスタンスを作らないのでClass自体の必要性があまり感じられなかった
– Classに対してのテストの難しさ

という問題を感じていました。

そんななかで改めてCLIツールの設計手法について自分なりに考えて再度整理をしてみました。
`n=1`でかなり主観的な内容が多く、まだまだ改善点も多いですがこれからCLIツールを作ってみようという人や参考程度に見る方の一つのサンプルとして記載させていただこうと思います。

### 目指したこと

以前のパッケージ開発の反省を踏まえ

– 粒度を細か

元記事を表示

12月になったのでクリスマスまであと何日か通知するDiscordBotを作る

# はじめに
もう1年も終わりですねー早い、
1年の締めくくりにネタ枠に走ってクリスマスまであと何日かを通知するBotでも作ろうと思います。
クリスマスまで、と書いていますが一部のコードを変えれば正月でもあなたの誕生日でもできますので、改良して使ってみてください

完成品はこちらです
https://github.com/KenCir/KurisumasuNotify

# 開発環境や使用するパッケージのバージョンなど
– NodeJS 16.16.0
– npm 8.11.0
– discord.js 14.7.1
– dotenv 16.0.3

# 環境構築
とりあえずプロジェクトフォルダ作ってフォルダ内で以下のコマンドを実行します
“`
npm init -y
“`

次に使うNPMパッケージをインストールします
“`
npm i discord.js dotenv
“`

# Botアカウントの設定
画像で囲ってある「MESSAGE CONTENT INTENT」をオンにします、これをしないと動かないです
![スクリーンショット 2022-12-08 19.00.48

元記事を表示

Though the “loose” option was set to “false” in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-property-in-object since the “loose” mode option was set to “true” for @babel/plugin-proposal-private-methods.

# 起きたこと
下記を実行
“`console
$ npm run storybook
“`

なんかでた
“`console
Though the “loose” option was set to “false” in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-property-in-object since the “loose” mode option was set to “true” for @babel/plugin-proposal-private-methods.
The “loose” option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are

元記事を表示

UNIX パイプで分子生物学実験

この投稿の趣旨は簡単な生物学的現象や分子生物学実験を UNIX コマンド上で再現することです。生物学に馴染みのない方はまず以下のページを見ていただくと良いかもしれません。

https://ja.wikipedia.org/wiki/%E3%82%BB%E3%83%B3%E3%83%88%E3%83%A9%E3%83%AB%E3%83%89%E3%82%B0%E3%83%9E

https://ja.wikipedia.org/wiki/%E5%88%B6%E9%99%90%E9%85%B5%E7%B4%A0

## ランダムな塩基配列を生成

生物の遺伝情報は DNA 分子中のアデニン・チミン・グアニン・シトシンの4つの塩基の配列としてコードされています。それぞれが `A`、`T`、`G`、`C` の4文字に割り当てられているものとして、次のコマンドでランダムな塩基配列が生成され標準出力に書き出されます。

“`shell
# DNA
$ cat /dev/urandom | base64 | tr -dc ‘ATGC’
# RNA
$ cat /dev/urandom

元記事を表示

大量データの処理をCloud Run x Cloud Tasksで解決した話

この記事は株式会社ビットキー Advent Calendar 2022 8日目の記事です。
Home Product所属の @uminoooon18 が担当します。

# はじめに

この記事では、システム間の大量データ連携処理を Cloud Run, Cloud Tasks などのGCPサービスを利用して構築した際にハマった事と、改善のために工夫した事を紹介します。

Cloud Run, Cloud Tasks 何それおいしいの?という方や、
GCPのサービスで大量処理を取り扱うための知見を深めたい方の助けになれば幸いです。

## 目次

[1. Cloud Run, Cloud Tasksとは](#1-cloud-run-cloud-tasks-とは)
[2. 今回のシステム間データ連携に求められる要件](#2-今回のシステム間データ連携に求められる要件)
[3. システム全体像](#3-システム全体像)
[4. ハマったポイント](#4-ハマったポイント)
[5. 解決策](#5-解決策)

# 1. Cloud Run, Cloud Tasks とは

## Cloud R

元記事を表示

App Service on Linux 上の Node アプリケーションを VS Code でリモートデバッグする方法

# はじめに

App Service on Linux Node Runtime では、[リモートデバッグ機能がプレビュー提供](https://learn.microsoft.com/ja-jp/azure/app-service/configure-language-nodejs?pivots=platform-linux#debug-remotely)されています。
VS Code を使って簡単に App Service 上のアプリケーションにローカル環境のデバッガをアタッチすることができます。

# TL;DR

具体的な使い方は[VS Code の公式ドキュメント](https://code.visualstudio.com/docs/azure/remote-debugging) に載っています。
百聞は一見にしかずということで以下の5分ほどの動画を見るのが早いです。