Node.js関連のことを調べてみた

Node.js関連のことを調べてみた

動画ストリーミングをnode.jsで読み込む方法

この記事は[ZOZO Advent Calendar 2023](https://qiita.com/advent-calendar/2023/zozo) #1 21日目の記事になります。

# TL;DR
HLSなどの動画ストリーミングをnode.jsで読み込むための方法です。

# 結論
これだけです。

“`typescript
import ffmpeg from ‘fluent-ffmpeg’
import fs from ‘fs’


const url = ‘https://example.com/video.m3u8’
const stream = fs.createWriteStream(‘filename.mp4’)

ffmpeg(url, { logger: console })
.addOutputOptions(
‘-movflags +frag_keyframe+separate_moof+omit_tfhd_offset+empty_moov’
)
.format(‘mp4’)
.on(‘error’, (error)

元記事を表示

誰か勝手に投げてくれ

# アグリゲートボンデッド,正直使いづらくないですか
Symbolを利用されている人であれば主にマルチシグでアグリゲートボンデット(以下アグボン)を利用されている方は少なくないと思います。アグボンを投げるためには以下の手順を踏む必要があります。

1. ハッシュロック,アナウンス
2. ハッシュロックの承認を待つ
3. ハッシュロックが承認されたらアグボンをアナウンスする
4. アグボンの承認を待つ
5. 連署する
6. 連署を全部集めれば完了

更にこれをデスクトップウォレットでアグボンを発行する場合,1-3の手順を行っている間に次のことが要求されます。条件を満たさなかった場合。アグボンのアナウンスに失敗してハッシュロック分の10XYMを失います。

– 1-3が完了するまでアプリを閉じないこと
– 1-3が完了するまでネットの接続を切らないこと
– トランザクションが正しく伝搬するノードに接続すること

10XYMを失う可能性があることはなんとなくわかっていただけた思います。少なくとも私は今までにアグボンのアナウンスを1-2回失敗し,ハッシュロック分を持っていかれた経験があります,

元記事を表示

Next.js で作ったサイトを GitHub Pages で公開する方法を爆速で丁寧に説明する

この記事は

1. create-next-app で Next.js アプリを作成
2. GitHub にプッシュ
3. GitHub Actions でビルド& GitHub Pages にデプロイ

までの工程をバカみたいに丁寧に書き起こしたものです。

情報が不足しているかもしれませんが、勉強中なので温かくご指摘いただけると助かります。

# はじめに

授業の一環でサイトを作成する必要が出ました。

普通に Adobe Express や STUDIO を使っても良かったのですが、ちょっと拘ってみたかったので Next.js にトライしてみます。

サイトを作っていく上で Three.js というライブラリを使用する予定だったので、そのための Node.js を使うのであれば、ついでに Next.js も使っちゃおう、というものです。

## 専門用語わからんちん🤷

| これは |こういうこと|
|:————–:|——–|
| VSCode |ファイルの中身を読み書きするためのもの。とても優秀。|
| Nod

元記事を表示

Node.js(Express)×PostgressSQLを使ったチャットアプリ 3

## ユーザー機能の実装

### postgressにユーザー情報を保存するテーブルを作成

“`sql
CREATE TABLE users (
user_id SERIAL NOT NULL,
user_name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP NOT NULL,
PRIMARY KEY (user_id)
);
“`
誰がchannelを投稿したのか見られるように、“channel“と“message“のテーブルに“user_id“のカラムを追加します。

“`sql
/*channelテーブル*/
ALTER TABLE channel ADD COLUMN user_id INTEGER;

/*messagesテーブル*/
ALTER TABLE messages ADD COLUMN user_id INTEGER;
“`

## ユーザー登録機能

“app.

元記事を表示

DacraneでAzure App ServiceにAPIサーバを立ててみる

# はじめに

開発中のクラウドインフラとアプリのプロビジョニングツールであるDacraneを利用して、APIサーバをAzure App Serviceにデプロイする例をご紹介したいと思います。

https://github.com/SIOS-Technology-Inc/dacrane

# Dacraneとは

サイオステクノロジーで開発しているクラウドインフラとアプリまでをデプロイするプロビジョニングツールです。現在の最新バージョンは0.0.7の開発初期段階のOSSです。IaCツール(特にTerraform)の影響を受けており、宣言的なコードでデプロイメント扱うことができます。
特徴としては、

1. YAMLによる宣言的なデプロイ定義
1. デプロイプロセスをコンテナ上で動かすことによる可搬性の高さ
1. インフラからアプリまで一式がデプロイできる

という点があげられます。
今回はDacraneで簡単なAPIをデプロイする方法をご紹介したいと思います。

# 環境

* macOS Ventura
* Go 1.21
* Docker Desktop 4.25.0
* GN

元記事を表示

Bunで生成したバイナリがdistrolessコンテナ上で動かない【解決】

# 結論

`gcr.io/distroless/static-debian12`ではなく`gcr.io/distroless/base-debian12`を使え!

# はじめに

Bun、速くて身軽で快適ですよね。

もはやyarnやpnpmなどのパッケージマネージャは不要だし、ランタイム同梱のバイナリまで生成してくれるのでDockerfile職人にも優しいです。

しかし今回、一部のdistrolessイメージではBunが生成するバイナリを動かせないという事象に遭遇したため、解決方法と共にこちらに残しておきます。

# 使用したDockerfile

“`Dockerfile
FROM oven/bun:1 as install
WORKDIR /temp/build
COPY package.json bun.lockb /temp/build/
RUN bun install –frozen-lockfile

FROM install as build
COPY . .
RUN bun run compile

FROM gcr.io/distroless/static

元記事を表示

[20日目] Node.jsとpm2をインストールする最強スクリプト

こんにちは、なりかくんと申します。
この記事はなりかくん Advent Calender 2023の20日目の記事です。

今回は、私が普段VPSにNode.jsとpm2をインストールする際に利用している秘伝のコマンドを教えていこうと思います。
Ubuntuが実行できる環境です。

# コマンド
“`
curl -sSL https://gist.githubusercontent.com/narikakun/d50ba6efd739a1fb3d08e46fa0b0077b/raw/d94cff02e57523839b78a1cff760044d077200db/install-node-lts-pm2.sh | sh
“`

このコマンドを実行するだけで、Node.js v20とpm2をインストールすることが出来ます。

# 内容
まず、読み込んでいるシェルスクリプトはこのようになっています。
“`shell
#!/bin/sh
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo

元記事を表示

scoopでnvmからNode.jsをダウンロードしようとしてはまった話

## はじめに
vimに興味を持ち、neovimをインストールしようと[この記事](https://devil-code.com/blogs/vim/neovim-setup/)を参考に環境構築していたところ、node.jsのインストールではまってしまいました。
備忘録として、記事にしようと思います。

## 使用環境
– windows11
– powershell
– scoop v0.3.1


上記サイトを参考にscoopのインストール、そして必要なパッケージをインストールしていたところ、nvmを使ってのnodeのインストールでエラーが出ました。
エラーが出たコマンドと排出されたエラーはこちら

“`
nvm install latest

>> C:\Users\?? ??\scoop\persist\nvm\nodejs could not be found or does not exist. Exiting.
21.4.0
Downloading node.js version 21.4.0 (64-bit)…
Error while creati

元記事を表示

同時接続環境の負荷試験であったこと

本記事は [オルトプラス Advent Calendar 2023](https://qiita.com/advent-calendar/2023/altplus2023) の12/20の記事です。

# :christmas_tree:はじめに
はじめましての方は初めまして。
初めてじゃない方はおはようこんにちわこんばんわ。
オルトプラスの自称賑やかし担当兼サーバーサイドエンジニアすがやです。
今回は同時接続の負荷試験を実施した時の体験談に関しての記事になります。

# :christmas_tree:仕様や構成等
今回のゴール地点は最大8000人が同時接続できる汎用的なロビー機能になります。
この8000人はランダムに移動を繰り返したりアクションを起こしたりします。
仕様ツールは下記の通りです。
|内容|採用しているもの|
|:-:|:-:|
|環境と言語|Node.js + TypeScript|
|負荷試験ツール|k6|
|インフラ|AWS環境|

上記を用いて、nodejsのインスタンスを複数作成し、ALBで接続先をある程度分散させ、Redisのpub/subの仕組みを用いて

元記事を表示

OpenAPI+Fastifyでスキーマファースト開発

この記事は [mediba Advent カレンダー2023](https://qiita.com/advent-calendar/2023/mediba) の20日目の記事です。

※記事の内容はあくまで個人の発信であり、会社を代表する意見や見解ではありません。
※記事内のコードは実際のプロダクトのものではなく記事用に作成したものです。

この記事ではNode.jsのHTTPサーバフレームワークであるFastifyでのAPI開発で、OpenAPIを使ったスキーマファースト開発を実現した話を書きたいと思います。

## はじめに

あるプロダクトを短期間で開発する必要があり、FE/BEの開発を並行してスタートできるようにスキーマファーストで開発することにしました。

FE/BEメンバーが集まって、APIのIF定義を[OpenAPI Specification v3.0](https://spec.openapis.org/oas/v3.0.0)形式のYAML(以下、OpenAPI)で記述しながら決めました。

APIの開発において、フレームワークには前プロダクトを踏襲して[Fastif

元記事を表示

Node.js(Express)×PostgressSQLを使ったチャットアプリ 2

## データベースからデータを取得する

“routes/index.js“を書き換えます。

“`js
// 中略

router.get(‘/’, async (req, res, next) => {
try {
const getQuery = ‘SELECT *, TO_CHAR(created_at, \’YYYY年MM月DD日 HH24時MI分SS秒\’) AS created_at FROM channel’;
const queryResult = await pool.query(getQuery)

console.log(queryResult.rows)

} catch (error) {
console.error(error);
// エラーハンドリング: サーバーエラーが発生した場合は500をクライアントに返す
res.status(500).send(‘サーバーエラー’);
}
res.render(‘index’, { title: ‘Express’ });
});

// 中

元記事を表示

Node.js(Express)×PostgressSQLを使ったチャットアプリ1

## チャットアプリについて
### トップページ
![スクリーンショット 2023-12-20 0.00.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262417/daf3c9c1-55ac-873d-ca2d-18a2ca52e201.png)

### トークページ
![スクリーンショット 2023-12-20 0.02.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262417/38702eb3-bbf1-7f32-7d9e-dd3af7814251.png)

## node.jsをインストールする

### MacOS
nodebrewを使ってインストールしてください

### Windows
公式サイトからインストールしてください

https://nodejs.org/en

## 開発環境の構築

### Expressのインストール
“`console
$ cd Desktop
$

元記事を表示

npmパッケージをScope付きで公開してみよう!

## 内容

以下の仕様のCLIプログラムを`NPM`に公開してみます。

## GitHub Repository

本記事で作成するPackageは[GitHub](https://github.com/HIppei/test-pair-checker)で公開しています。

## 仕様

プログラム名は、`test-pair-checker`とします。

**テスト対象ファイル**に対応する**テストファイル**を検索し、存在有無をチェックします。これにより、ファイルの存在有無レベルですが、簡単にテスト不足を検知できます。

以下の構成の場合、`src/components/custom-button.tsx`は対応するテストファイルが**存在する**、`src/components/custom-input.tsx`は対応するテストファイルが**存在しない**と検知できればOKとなります。

“`bash:Exapmle
.
├── src
│ ├── components
│ ├── custom-button.tsx
│ ├── custom-i

元記事を表示

同一アドレスに複数の同一メール送ろうとしてませんか?

# いきさつ
Aさん「katahiroさんに作ってもらったツール、設定されてるメールアドレスにメールが飛ぶはずだけど、今日のは届かないです」
katahiro「??確認してみますね」

こちらの記事の流れに近いですが、また別の話です。

https://qiita.com/katahiro/items/881bd52163d1f4c7c43c

# 原因調査
組織に提供しているツールは`Slack`でBotとして機能しますが、以下のような流れで動きます
1. Slackの[ワークフロー](https://slack.com/intl/ja-jp/features/workflow-automation)が起票されて、特定の情報がチャンネルに書き込まれる
1. ワークフローの書込みをBotが検知して、書き込まれた内容を取得
1. 書き込まれた情報に対して採番を行い、以降の書込みを管理
1. 採番が完了した後に、設定されているメールアドレスに対して起票された内容を `Sendgrid`のメール配信にて周知
1. 以後書き込まれたメッセージでCloseの指示があれば、起票内容がCloseした

元記事を表示

ISUCON13で遭遇したTypeScriptとES Modulesにまつわるエラーとその解決

この記事は、株式会社ビットキー Developer Advent Calendar 2023 19日目の記事です。

https://qiita.com/advent-calendar/2023/bitkey

## tl;dr

ISUCON13で実際に遭遇した問題を題材に、tsconfig.jsonの`lib`に設定を追加してECMA Scriptの新しい機能を追加する方法と、Node.jsをNative ES Modulesとして動かすために、必要な設定変更と修正が必要なアプリケーションコードについてまとめました。

## あらすじ

先月、ISUCON13に同僚とチームを組んで参加して来ました。実装言語は日々の業務で利用しているNode.jsを選択したのですが、構成の変更中にTypeScriptのコンパイルとES Modulesに関連した問題が発生し、苦戦しつつも解決できたので、備忘録的に共有します。

なお、この記事ではISUCON自体の解説はしませんので、ISUCONが何かを知りたい方は[ISUCON公式ホームページ](https://isucon.net/)を参照してくだ

元記事を表示

シェルを使ってSymbolノードを簡単構築

## メインネットでノードを構築・運用しよう!
みなさんこんにちは。あきまるです。
今回はアドカレということですが、過去に書いた簡単ノード構築記事を再度こちらに掲載しようと思います。
現在は、モバイルノード構築が流行していますが、基本は自鯖またはVPSでのノード構築かなと思っております。特にトラブった時にこのノード構築を経験しているかどうかでかなり差が出るとは思います。
また、構築するコードも全て掲載しているので、ノードトラブル時に細かく点検していくことも可能だったりします。
ということで、この記事がお役に立てることがあれば嬉しいなと思います。

ノード構築に関しては、私も2021年のローンチ時にメインネットでノードを立てましたが、結構苦労しました。
そしてかなり打ち間違えてはリセットを繰り返しました。
そんな苦い経験から、今回は簡単に構築できるよう、普段から使用しているシェルスクリプトを活用した構築・ノード更新方法を紹介します。

わかってしまえば、コピペでぱっぱといけます。だめならOSの入れ直しをして最初からやってしまう荒技だって出来ます。
参考資料として、づ~大先生の資料を最下部

元記事を表示

Docusaurus – Meta が開発した超高速な静的サイトジェネレータ

Docusaurus は、 Facebook が開発した静的サイトジェネレータで、サクッと高速な Web サイトを作成することができるのが特徴です。

2023/12 時点での GitHub スター数は ⭐️ **49.9k** です。

![](https://docusaurus.io/img/docusaurus_keytar.svg)

### Links

– 公式ページ: [docusaurus.io](https://docusaurus.io/)
– GitHub: [facebook/docusaurus](https://github.com/facebook/docusaurus)

### 特徴

公式がトップページに掲げている 5 つの特徴です。

– MDX: [MDX](https://mdxjs.com/) というマークダウンと React が合体したファイル形式を利用できるので、 React 単体で作るときのように、ページを作成するのにわざわざ React を書く必要がありません。マークダウンを描くだけでページを作成できます。逆に、マークダウンで書い

元記事を表示

Solved “Cannot find module ‘fs/promises’” in Node.js

In this post, we’ll investigate the reasons behind this error, look at the modifications made to early versions of Node.js, and talk about fixes.

Solved “Cannot find module ‘fs/promises’” in Node.js

元記事を表示

IGRの時刻表をスクレイピング

Functionノードを使わないでスクレイピングに挑戦します。

@n0bisuke さんのNodeREDで[みんな大好きIGRの時刻表をスクレイピング](https://qiita.com/n0bisuke/items/bd5329296fc188199993)のインスパイア記事です。

## 作ったフロー

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266424/0af95753-8b30-c315-7dc0-87035e7a19c5.png)

### injectノード(タイムスタンプ)
特にプロパティは変更していないです。
フローを発火します。

### httpノード(滝沢駅)
URLに以下を入力します。

滝沢駅〜学園の杜

### HTMLノード(上り/下り)
Httpノードで取得したHTMLをHTMLノードで必要な箇所のみ抽出します。
抽出する要素は以下の様に指定します。

#### 上り
`#igr-eki-diau

元記事を表示

月曜日をもっと楽しく迎えるbot

# はじめに
こちらは[長野高専 Advent Calendar 2023](https://qiita.com/advent-calendar/2023/nnct) 17日目の記事です!
@shun-shobon さんが開催するNNCTアドカレもこれで3回目の参加ですね〜。現在後続の主催者を探しているみたいなので、来年度以降も在籍予定の方はぜひ!

## 自己紹介
卒業してしまった身なので書いておきます!
18sで昨年電子情報工学科を卒業した**Bony_Chops**と申します!現在は大学に3年次編入して、各所でインターン等々をやっています。

https://bonychops.com

# 明日は月曜日
長野高専電子情報工学科18生のDiscord鯖には **月曜日を楽しく迎えるため** に作られた **#明日は月曜日** というチャンネルがあります
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601799/70859d47-a009-d0d3-7eae-f6d6049658d

元記事を表示

OTHERカテゴリの最新記事