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

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

BunでMongoDB/mongooseを使う

一昨日、Bunのネイティブ実装であるSQLiteを試してみて動いたのに気をよくして今日はMongoDBをやってみました。

Node.jsでお馴染みの MongoDB 用のフレームワークmongooseを使ってスキーマを作り接続します。

とりあえず、Bunサイトのサンプルを少し補い試しただけなので軽く記録を残しておきます。

Bun>MongoDB

https://bun.sh/guides/ecosystem/mongoose

“`sh
# mongoose をインストールする
mkdir mongoose
cd mongoose
bun init
bun add mongoose
“`
“`sh
# スキーマ用スクリプトを書く
vi schema.ts
“`

“`js: schema.ts スキーマ用スクリプト
import * as mongoose from ‘mongoose’;

const animalSchema = new mongoose.Schema(
{
name: {type: String, required: true},

元記事を表示

Node.jsトラブルシューティング:開発者が直面する10の一般的なエラーとその解決策

# はじめに
こんにちは!今回はNode.jsを使用している時に遭遇する可能性のある一般的なエラーとその解決策について説明します。
通勤中など空いてる時間に読んでいただけると嬉しいです。

## Node.jsとは
Node.jsは、JavaScriptを使用してサーバーサイドのアプリケーションを構築するためのものです。Node.jsは、npmと呼ばれるパッケージマネージャーとともに使用されることが多いです。npmは、Node.jsのパッケージを管理するためのツールです。Node.jsとnpmを使用すると、JavaScriptを使用してWebサーバーを構築したり、コマンドラインツールを作成したり、デスクトップアプリケーションを構築したりすることができます。

# 🤔 Node.jsトラブルシューティング:開発者が直面する10の一般的なエラーとその解決策

1. 📦 **モジュールが見つからない** (“MODULE_NOT_FOUND”)
– プログラムが必要とするモジュールが見つからない場合にこのエラーが出ます。
– 🛠️ **対処法**: モジュール名を確認し、`npm

元記事を表示

簡易的なwebサーバーを作ろう(node http-server axios)

## 前回の続き

前回、Rubyにてバックエンドサーバを立ち上げる記事を投稿しました。
[Rubyのサーバー構築(WEBrickってなんぞ?)](https://qiita.com/hirapg_1123/items/4b78e376e042b51d3938)
今回はフロント側(webサーバー)を簡易的ですがjavascriptで作成していきます。

## そもそもwebサーバーって?
Webサーバーとは、パソコンやスマートフォンなどの端末からHTTP/HTTPSで送られたリクエストに対してHTML、CSS、JavaScriptなどの情報を返す役割を持ったソフトウェアのことを指します。
一般的に、Webサーバーへ接続するためにはブラウザを使用します。

### webサーバーの役割
要は、見る側の要素をブラウザへ返すのを担当するサーバーになります。(ざっくり言うと)

## サーバーを作る前にweb3層構造の話
### web3層構造とは
今回作成する「WEBサーバー」に加えて、前回作成したRubyでの「バックエンドサーバー」、
データを保管する「DBサーバー」の三つをまとめたも

元記事を表示

Bun のオンザフライinstallと、キャッシュ。

Qiita の Advent Calendar 2023 にこの可愛いアイコンでお馴染みの Bun で何か書こうと決めたのだけど、今回は使ってみて意外に便利かなと思ったので Bun>Auto-install あたりをやってみようと思います。

Node.js/npm で、パッケージモジュールがディスク内のあちこちに分散し、無数に同じモジュールを重複して落としまくり、将来のひっ迫を心配しながら管理したり、挙句には、どの階層の node_modules を参照してるのかもわからなくなったりするのは、正直気持ち悪いですよね。

でもまぁ、Node.js が好きなので、やむを得ず我慢してたのですが、Bun を使って頭を切り替えると、そのあたりはすっきりしてかつ高速になり気持ち良いかも?と思う今日この頃です。

#### 注意
Bun はまだ20

元記事を表示

Ubuntu22.04上でTypeScriptの環境構築

## Node.jsをインストール
公式から直接インストールすることもできますが、一般的にはバージョン管理ツールを使用することが推奨されているので、ここでは代表的なバージョン管理ツールであるnvmを使ってインストールします。

### nvmをインストール
[nvmの公式](https://github.com/nvm-sh/nvm#installing-and-updating)に従ってコマンドを打っていきます。環境に合わせて以下のどちらかを実行します。

“`
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
“`
“`
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
“`

以下は実行結果の最後のほうの抜粋です。

“`
=> Appending nvm source string to /home/test/.bashrc
=> Appending

元記事を表示

Node.js と GridDB を使用して Unity ゲームデータを保存する

## はじめに

この投稿では、**Feed The Animals** というシンプルなゲームを作ります。このゲームでは、バックエンドサーバーとして Node.js を、ストレージとして GridDB データベースを使用します。

## プロジェクトの実行

GitHub リポジトリからプロジェクトの[ソースコード][1]をクローンします。

“`sh
git clone https://github.com/junwatu/unity-node.js-griddb.git
“`

ディレクトリをプロジェクトのソースコードに変更します。

“`sh
cd unity-node.js-griddb
“`

ゲームサーバー用に Node.js の依存関係をインストールします。

“`sh
cd app\server
npm install
“`

### ゲームサーバー

ゲームを起動する前に、まずゲームサーバーを起動してください。プロジェクトのソースコードから `app\server` フォルダに移動し、ターミナルで以下のコマンドを実行してください。

“`sh
npm

元記事を表示

NestJS から MySQL に接続する

# はじめに
この記事では、NestJS から MySQL への接続手順について記載します。

# 開発環境
開発環境は以下の通りです。

– Windows11
– VSCode
– Node.js 20.5.0
– NestJS 10.0.0
– TypeScript 5.1.3
– MySQL 8.0.33
– MySQL2 3.6.3
– TypeORM 0.3.17

# パッケージのインストール
MySQL への接続に必要なパッケージをインストールします。

“`
npm install –save @nestjs/typeorm typeorm mysql2
“`

“`
npm install –save-dev @types/node
“`

# “`TypeOrmModule“` のインポート
次にルートのモジュールである “`AppModule“` に “`TypeOrmModule“` をインポートします。
“`forRoot()“` の引数に MySQL への接続情報を記載します。

“`app.module.ts
import

元記事を表示

RockyLinux OS 9にNodejs 20をインストール(AppStream)

# はじめに

Application Stream(AppStream)を利用してRockyLinux OS 9にNodejs 20をインストール

## サポート

本手法で導入した場合、[Red Hat Enterprise Linux Application Streams Life Cycle \- Red Hat Customer Portal](https://access.redhat.com/support/policy/updates/rhel-app-streams-life-cycle)より、2026-04がEOLだと思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### インストール

“`shell-session
# cat /etc/redhat-release
Rocky Linux release 9.3 (Blue Onyx)

# yum module list nodejs
Last metadata expiration check: 0:00:38 ago on Thu Nov 23

元記事を表示

AlmaLinux OS 9にNodejs 20をインストール(AppStream)

# はじめに

Application Stream(AppStream)を利用してAlmaLinux OS 9にNodejs 20をインストール

## サポート

本手法で導入した場合、[Red Hat Enterprise Linux Application Streams Life Cycle \- Red Hat Customer Portal](https://access.redhat.com/support/policy/updates/rhel-app-streams-life-cycle)より、2026-04がEOLだと思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### インストール

“`shell-session
# cat /etc/redhat-release
AlmaLinux release 9.3 (Shamrock Pampas Cat)

# yum module list nodejs
Last metadata expiration check: 0:00:25 ago on Thu

元記事を表示

RockyLinux OS 8にNodejs 20をインストール(AppStream)

# はじめに

Application Stream(AppStream)を利用してRockyLinux OS 8にNodejs 20をインストール

## サポート

本手法で導入した場合、[Red Hat Enterprise Linux Application Streams Life Cycle \- Red Hat Customer Portal](https://access.redhat.com/support/policy/updates/rhel-app-streams-life-cycle)より、2026-04がEOLだと思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### インストール

“`shell-session
# cat /etc/redhat-release
Rocky Linux release 8.9 (Green Obsidian)

# yum module list nodejs
Last metadata expiration check: 0:00:37 ago on Thu No

元記事を表示

AlmaLinux OS 8にNodejs 20をインストール(AppStream)

# はじめに

Application Stream(AppStream)を利用してAlmaLinux OS 8にNodejs 20をインストール

## サポート

本手法で導入した場合、[Red Hat Enterprise Linux Application Streams Life Cycle \- Red Hat Customer Portal](https://access.redhat.com/support/policy/updates/rhel-app-streams-life-cycle)より、2026-04がEOLだと思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### インストール

“`shell-session
# cat /etc/redhat-release
AlmaLinux release 8.9 (Midnight Oncilla)

# yum module list nodejs
Last metadata expiration check: 0:00:35 ago on Thu Nov

元記事を表示

【GPT Crawler】URLのみでGPTsを作成!

# 🌐 GPT Crawler: Create GPTs with Just a URL! : URLのみでGPTを作成!
こんにちは、皆さん!今回はGPT Crawlerを使ってURLのみでGPTsを作成する方法を紹介します。

リポジトリのリンクは[こちら](https://github.com/builderio/gpt-crawler)です。

https://github.com/builderio/gpt-crawler

私が改変したものは[こちら](https://github.com/yuyuyu2118/gpt-crawler-y)です。アップデートしたら記事も更新します。

https://github.com/yuyuyu2118/gpt-crawler-y

## 🎓 はじめに: Introduction
GPTsって革命的なんですけど、GPT Plusに登録していてもファイルの数が10個までと制限されていたり、まだまだ使いづらい部分がありますよね。

**少ないファイル数で効率的に狙った質問を返してもらうには、データを加工した上でアップロードする必要がありま

元記事を表示

【初心者Nodejs】東大生限定の掲示板を作ってみた

Webアプリを作ってみたいなと思って、Nodejsの勉強がてら東大生限定の掲示板を作ってみた。

https://www.akamonnews.com/landing

![](https://storage.googleapis.com/zenn-user-upload/40f2290a036d-20231121.jpg)
*クリックするとリンク先に飛ぶリンク共有掲示板みたいな*

作る過程は楽しかったし、同時に難しかったので記録を残しておく。

僕はガチ初心者だし完全なアマチュアなので、すごく基本的な内容だということは念頭に置いといてね。もしかしたらこの記事で間違いとか、セキュリティ上のリスクみたいな部分があるかもしれないから、その時はコメントで教えてくれるとありがたい。
あと言葉もかなり雰囲気・イメージで使っていると思うので、例えばパッケージ・ライブラリの細かい違いとかはお手柔らかに。文系なので。

ちなみにまだユーザーが皆無なので、もしこれを見ているあなたが東大生である、あるいは東大生の知り合いを知っているとかだったらぜひシェアしてみてね。

## 1.コンセプト・基本方針

元記事を表示

node.jsでのdynamodb操作をまとめた(sdk v3)

# node.jsでのdynamodb操作まとめ

node.jsでのdynamodb操作操作をする機会があったため、各種操作方法をまとめておきます。
環境は以下です。

– node.js v18
– aws sdk v3

## 公式サイト

https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/

https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_lib_dynamodb.html

## 想定するDynamoDBスキーマ

– パーティションキー
– AccountType
– ソートキー
– user_id
– 属性
– role_id

## 共通

DynamoDBClientのみで頑張って書いても大丈夫ですが型定義など書かないといけないのでめんどくさいです。
DocumentClientを使うとスッキリかけます。
詳しくは公式サイトを確認してください。

元記事を表示

Node.jsでのMQTT: 実例とFAQ

![MQTT with Node.js: A Beginner’s Guide with Examples & FAQs](https://assets.emqx.com/images/f984e17ca21ac4b99653a9b666dc537b.png?imageMogr2/thumbnail/1520×684)

**目次**

– [はじめに](#はじめに)
– [Node.js MQTTプロジェクトの準備](#nodejs-mqttプロジェクトの準備)
– [MQTTブローカーの準備](#mqttブローカーの準備)
– [Node.jsでのMQTTの使用](#nodejsでのmqttの使用)
– [完全なコード](#完全なコード)
– [テスト](#テスト)
– [Q&A](#qa)
– [Node.js MQTT応用](#nodejs-mqtt応用)
– [まとめ](#まとめ)
– [リソース](#リソース)

## はじめに

[MQTT](https://www.emqx.com/ja/blog/getting-started-with-mqtt)は、パ

元記事を表示

Node.js バージョン管理 比較表

# 比較表
| Tool | macOS | Linux (WSL) | Windows | スター数 (k) | バージョン管理 | プロジェクト切替 | 特徴 | 最終リリース日 |
| — | — | — | — | — | — | — | — | — |
| [nvm](https://github.com/nvm-sh/nvm) | ◯ | ◯ | ✕ | 71.6k | .nvmrc | △ | スタンダード | 2023-08-22 |
| [asdf](https://github.com/asdf-vm/asdf) | ◯ | ◯ | ✕ | 19k | .tool-versions | ◯ | 複数言語の管理 | 2023-09-13 |
| [n](https://github.com/tj/n) | ◯ | ◯ | ✕ | 18.1k | .nvmrc
.node-version
.n-node-version | ✕ | macOSで導入しやすい | 2023-10-15 |
| [fnm](https://gi

元記事を表示

わがままゴルファーのためのLINE Bot

## 1. ゴルフの要素って多くない!?
こんなどうでもいいことを友達に聞くのもアレなのでChatGPTに同意を求めてみた。
![スクリーンショット 2023-11-20 224428.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3554996/563b2c74-80c3-e4e2-d54b-2cd3c903af87.png)
プレイするという観点からもゴルフは考えることが多くて複雑であると
改めて教えてもらった。

私が個人的にゴルフをしていく上で気になるのは
* **どうやって練習したらいいのか**
* **ラウンドに必要なものは揃っているか**
* **予約はどうやって取ればいいか**
* **ラウンドの日の天気はいいのか**
などである。

もちろん時間をかければわかる。

練習の情報もあふれているが、取捨選択の時間があれば
必要で効率のよい練習方法にたどり着けるだろう。

ラウンド前に必要なものが足りていなければ
買いに行けばいい。

ゴルフ場に電話したり
アプリを使えば予約もできる。

元記事を表示

Node.jsでCSVをJSONに変換する【csvtojson】

[csvtojson](https://www.npmjs.com/package/csvtojson)というモジュールを使えばできるのだが、使い方について調べると古い情報が多かったり複雑なことをしていたりと、**CSVをJSONに変換する**というただそれだけのことの情報が見つからないので、備忘として残しておく。
# やり方
CSVファイルを読み込んでJSONの配列にするモジュールなので、あとはそれを好きに修正してファイル出力すれば良い。
## 環境
||version|
|—|—|
|[Node.js](https://nodejs.org/en)|20.9.0|
|[npm](https://docs.npmjs.com/cli/v10)|10.0.0|
|[csvtojson](https://www.npmjs.com/package/csvtojson)|2.0.10|
## コード(使用例)
“`javascript
// モジュール読み込み
const fs = require(‘fs’);
const csv = require(‘csvtojson’);

元記事を表示

Node.jsとgulpをアップデートして、Dart Sassにしたお話

# はじめに

私が担当している弊社サービスでは、大きな問題がなかったため、長い間Node.jsをアップデートしないまま開発を行っていました。(Node.jsは、gulpを使用(Sassをコンパイル・画像圧縮など)するために入れています)
そんな中、新メンバーが加入することになり、PCのセットアップをする際、旧バージョンのNode.jsはさすがに入れられないということが発覚し、急遽アップデートしないといけない事態になってしまいました :sweat_drops:
今回は急いで対応を迫られ、ようやく重い腰を上げて対応したアップデートのお話になります。
(ちなみに、対応した私は黒画面が苦手な部類の人間です:skull:)

![nimotsu_hakobu_woman.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/54595/802e5f1c-747a-173f-3f66-ef63c475b55a.png)

# チャレンジ :one:

| | before | after |
|:-:|:-:|:-:

元記事を表示

REST API Caching (忘備録)

# キャッシング

キャッシング(caching)は、特定のリソースのコピーを保存し、要求された時にそれを提供する技術である。

キャッシングを使用してネットワークを最適化することで、以下のようにサービスの品質全体を向上させる。

– バンド幅の削減
– レイテンシーの削減
– サーバーへの負荷の削減
– ネットワークの障害を隠す

# REST apiのキャッシング

GETリクエストは、デフォルトでキャッシュ可能であるべきである。ブラウザは、通常全てのGETリクエストをキャッシュ可能として扱う。

POSTリクエストは、デフォルトでキャッシュ不可である。Expiresヘッダ又はCache-Controlヘッダを設定すると、キャッシュ可能になる。

PUT及びDELETEリクエストはキャッシュ不可である。

# キャッシングヘッダ

キャッシングヘッダ(Cache Headers)は、RESP APIにおけるキャッシングの重要な部分である。キャッシングヘッダはクライアントに対してリソースのキャッシュ可能性の情報を提供する。最も一般的なキャッシュヘッダ:

– Cache-Contro

元記事を表示

OTHERカテゴリの最新記事