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

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

Ubuntu22.04(Linux)に Node.jsをインストール

以前までは以下の記事と同じ方法で行っていました。

[【2023年4月版】Ubuntu に node.js と npm を入れたい(バージョン管理も)](https://qiita.com/nouernet/items/d6ad4d5f4f08857644de)

具体的にはnodeをaptでインストールし、nというnode.js自体のバージョン管理ツールでnode.jsをバージョンアップし、nを削除という方法でした。

ただ、今回公式を見に行ってみると公式が丁寧になっていたので記事にしてみました。

https://nodejs.org/en/download/package-manager

概要としては、nvmというバージョン管理ツールをcurlにて直接インストールし、node.jsを指定のバージョンでインストールする、という手順のようです。

抜粋というか、ほぼコピペですが、コマンドは以下の通りです。

“`shell:bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.s

元記事を表示

javascriptフレームワークの環境構築

##### この記事では主にHomebrewを使用した環境構築方法になります。

#### node.jsの環境構築
“`
# node.jsのバージョン管理のためのnodebrewをインストール
$ brew install nodebrew

# nodebrewのバージョン確認
$ nodebrew -v

# node.jsのインストール
$ nodebrew install-binary stable

## 下記のようなエラーが出た時は、、、、
Fetching: https://nodejs.org/dist/v20.3.0/node-v20.3.0-darwin-arm64.tar.gz
Warning: Failed to create the file
Warning: /Users/username/.nodebrew/src/v20.3.0/node-v20.3.0-darwin-arm64.tar.gz
Warning: : No such file or directory

# エラーの場合は下記のコードを実行後に最インストール
$ mkdir -p

元記事を表示

AIレビューについて(導入方法、使用感、料金)

## 概要

弊社(株式会社コムニコ)でレビュー効率を上げるために、AIレビューの導入を検討しました!
今回ご紹介するのはPR-Agentというライブラリで、無料範囲で十分に成果を上げてくれます。

設定方法、料金、実践的な使用感を具体的に解説しているので、さらっと読んでみてください!

Github ActionとBitBucket Pipelineで設定するYAMLテンプレートもご用意しております。

**読了時間目安は約5 ~ 10分**です。

## 目次

– [(3行で)弊社について](#3行で弊社について)
– [PR-Agentでできること](#pr-agentでできること)
– [各機能のレビュー](#各機能のレビュー)
– [前提](#前提)
– [`/describe`について](#describeについて)
– [`/review`について](#reviewについて)
– [`/improve`について](#improveについて)
– [`/ask`について](#askについて)
– [OpenAIにかかったお値段](#

元記事を表示

npmからpnpmに移行するときビルドが通らない

場当たり的に解決できたのでメモ。
詳細が分かる方は編集リクエストかコメントください。🙇

## TL;DR
“`sh:pnpm install
pnpm install –shamefully-hoist
“`

## 環境
**OS**: Windows 11 Home 23H2
**Laravel**: 8.83.27
**Node.js**: v12.19.0
**pnpm**: 5.18.10

## 雑な説明

パッケージのインストール時、シンボリックリンクに対応するオプションを指定すると`node_modules/`以下が`npm install`のファイルパスとほぼ同じになる。

元記事を表示

SpringBootで包み込むVue.js開発環境 カンタン構築 SPA編

# はじめに

以前、Spring Boot に Vue.js を統合した開発環境の構築手順を説明する記事を書いたのですが、できることをひとつずつ増やそうの精神で、ほぼ同じ構成の SPA バージョンにも挑戦してみました。

https://qiita.com/hiroe-mkk/items/f065a27e924f4d21a715

記事中のソースコードは以下のリポジトリから参照できます。

https://github.com/hiroe-mkk/springboot-vue-spa-tips

誤りなどがありましたら、ご指摘いただけますと幸いです。

# 環境

– Java 17
– Spring Boot 3.2.2
– gradle-node-plugin 7.0.1
– vue 3.4.21
– vite: 5.2.0
– vue-router: 4.3.0
– Node.js 21.6.1
– IntelliJ IDEA 2023.3.3 (Community Edition)
– Windows 11 Pro

# プロジェクト構成概要

**前回と同じ点**

– バ

元記事を表示

TypeScriptとNode.jsを使った効率的なAPI開発環境の構築

TypeScript, Node.js, Expressを用いたAPI開発は非常に一般的であり、開発環境と本番環境で異なるデータベースを使うことにより、効率的な開発フローが可能になります。ここでは、SQLiteを開発環境で、MySQLを本番環境で使用するセットアップ方法について説明します。

### 環境情報

このセットアップは、以下のバージョンのNode.jsとnpmが前提となります。

– Node.js: v20.12.1
– npm: 10.5.0

### 1. プロジェクトの初期設定

まずは、Node.jsプロジェクトの基盤を作成し、必要なライブラリをインストールします。

“`bash
mkdir my-api-project
cd my-api-project
npm init -y
npm install express typescript ts-node @types/node @types/express
npm install sqlite3 mysql2
npm install typeorm reflect-metadata # ORMライブラリ

元記事を表示

Node single executable applicationsでnpmパッケージを使う

[Node single executable applications](https://nodejs.org/api/single-executable-applications.html) を使うと簡単にNodeのスクリプトをexe化できる。

しかし、その名の通り、exe化できるのは1つのJavaScriptのみ❗
つまり、 `import` で自作ライブラリを使うことはもちろん、npmパッケージも使えないのだ❗
なんて限定的な機能なんだ❗クソッ❗

…とまぁ、分かってる人はこの時点で「アホだな〜」と思われてると思う。

そう、解決策は簡単で、バンドラーを使えば良い。
WebPackとか、esbuildとか、そういうやつ。
バンドラーは複数のJavaScriptファイルを1つにまとめてくれるので、
SEAを作るときにはもってこいってわけだね。

っていうか、ドキュメント↓にそう書いてあるんだわ。ちゃんと読もう。

> Node.js supports the creation of single executable applications by allowing the

元記事を表示

synology NASにコンテナを立ててみた

前回synologyのサーバーにapiを立てて、「hello world!」を返してみました。
今回は、container managerを使用してコンテナを立ててみようと思います。

大まかな流れ
1.container managerのインストール
2.nodeのレジストリをダウンロードする
3.コンテナの設定をして動かす

### container managerのインストール
パッケージセンター>すべてのパッケージから「container manager」をインストールしておいてください。

![スクリーンショット 2024-04-12 19.37.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3552209/e1709785-e350-9140-562c-4d3d131e9bba.png)

### nodeのレジストリをダウンロードする
container managerを開くと、左側のタブに概要、プロジェクト、イメージ、レジストリ、ネットワーク、ログが出ていると思います。
この

元記事を表示

Node.js(Express)とRenderでLINEログイン機能を実装する

## はじめに
[前回](https://qiita.com/course_k/items/4c7faedf11723af9bb6e)はLINEが用意してくれているデモアプリをつかって、LINEログイン機能を試しました。
今回は、Node.jでの実装を通して、内部でどのような処理をしているのかを確かめます。

### 前提
本記事は以下のことは完了している想定で進めます。
* Node.jsをインストール済であること
* GitHubアカウントをもっていること
* Renderアカウントをもっていること
* LINE関連の設定が終わっていること(設定詳細は[こちら](https://qiita.com/course_k/items/85bf9cfab971cb5b97ee#line%E9%96%A2%E9%80%A3%E3%81%AE%E8%A8%AD%E5%AE%9A))
* LINEログインチャネルの作成方法がわかっていること(作成方法は[こちら](https://qiita.com/course_k/items/4c7faedf11723af9bb6e#line%E3%83%AD

元記事を表示

2025 年 3 月での files.upload API 廃止と移行方法について

こんにちは、Slack の[公式 SDK 開発](https://github.com/slackapi)と日本の Developer Relations を担当している瀬良 (@seratch) と申します 👋

この記事では、本日発表された [files.upload API](https://api.slack.com/methods/files.upload) の deprecation (非推奨) と移行方法について日本語で解説します。アナウンスメント(英語)は、以下のページでご確認いただけます。

https://api.slack.com/changelog/2024-04-a-better-way-to-upload-files-is-here-to-stay

## files.upload API 廃止までの流れ

[files.upload API](https://api.slack.com/methods/files.upload) は、2025 年春に廃止されます。それまでのスケジュールは以下の通りです。

1. 2024 年 5 月 8 日以降、新しく作成

元記事を表示

【Hack The Box】Codify【Writeup】

# 初めに

どうも、クソ雑魚のなんちゃてエンジニアです。
本記事は ___Hack The Box___(以下リンク参照) の「___Codify___」にチャレンジした際の ___WriteUp___ になります。
※以前までのツールの使い方など詳細を書いたものではないのでご了承ください。

___※悪用するのはやめてください。あくまで社会への貢献のためにこれらの技術を使用してください。法に触れるので。___

https://www.hackthebox.com/

# 初期探索
## ポートスキャン
“`bash
┌──(root㉿kali)-[~/work]
└─# rustscan -a 10.10.11.239 –top –ulimit 5000
.—-. .-. .-. .—-..—. .—-. .—. .–. .-. .-.
| {} }| { } |{ {__ {_ _}{ {__ / ___} / {} \ | `| |
| .-. \| {_} |.-._} } | | .-._} }\ }/ /\

元記事を表示

【解決】Node.js20系にホットリロード導入しようとしたらめちゃくちゃハマった

# 起こったこと
Node.js(Express)環境でtypescriptを使ったAPIの開発環境でホットリロードを実装しようとしたところ、めちゃくちゃ詰まった。
最初に試したことはts-nodeとnodemonの組み合わせ。ts-nodeがtsファイルを読み込めず、ずっとエラーを吐いていた。。。

以下、解決した方法と環境

## 実行環境
– Node.js 20.0.0
– express 4.19.2
– typescript 5.3.3
– nodemon 3.1.0
– tsx 4.7.2

## 解決方法
結論、ts-nodeではなく、tsxをnodemonと一緒に利用することで解決した。
package.jsonのstartコマンドを記載するだけ。tsconfig.jsonなど他のファイルの変更は不要。

“`
yarn add -D tsx
“`

“`
“scripts”: {
“test”: “echo \”Error: no tes@t specified\” && exit 1″,
“start”: “nodemon –exe

元記事を表示

JavaScriptで長い配列を長さnの小さい配列に分割するワンライナー

# やりたいこと
例えば長さ12の配列を、
“`JavaScript:変換前
const src = [‘Jan’, ‘Feb’, ‘Mar’, ‘Apr’, ‘May’, ‘Jun’, ‘Jul’, ‘Aug’, ‘Sep’, ‘Oct’, ‘Nov’, ‘Dec’]
“`
このように、
“`JavaScript:変換前
[
[‘Jan’, ‘Feb’, ‘Mar’],
[‘Apr’, ‘May’, ‘Jun’],
[‘Jul’, ‘Aug’, ‘Sep’],
[‘Oct’, ‘Nov’, ‘Dec’]
]
“`
長さ3など短い複数の配列に分割したいとします。これを実現するワンライナーを紹介します。

# 答え(ワンライナー)
“`JavaScript:答え
const dst = Array(Math.ceil(src.length/n)).fill().map((_, i) => src.slice(n*i, n*(i+1)));
“`
– まず、`Math.ceil(src.length/n)`で分割数を求めます。例えば、長さ12を長さ3で分け

元記事を表示

Node.jsプロジェクトでの環境変数の扱い方

# はじめに
Node.jsプロジェクトにおいて、環境変数の管理は非常に重要です。このブログでは、.env ファイルと globals.ts モジュールを使用して、環境変数を効率的に管理する方法について説明します。

アプリケーションの設定情報をコードから分離することは、セキュリティのベストプラクティスとされています。特に、データベースの接続情報やAPIキーなどの機密情報は、公開されるべきではありません。.envファイルを使用することで、これらの情報を安全に管理し、異なる環境(開発、ステージング、本番)でのアプリケーションの動作を容易に切り替えることができます。

# ステップ 1: 環境変数の設定
.envファイルは、キーと値のペアで構成され、アプリケーションが実行される環境に応じて異なる設定を提供します。dotenvライブラリを使用することで、これらの環境変数をアプリケーションの起動時に読み込み、プロセスの環境変数として利用できるようになります。
“`.env
# okta credentials
SSH_USERNAME=”ssh-username”
SSH_PASSWORD=

元記事を表示

旅した国・街をマップで表示できるサイトを作った。

行った国や街を登録してマップに表示できるサイトを作ったので、紹介します。

https://bokenmap.com

## イントロ

今回作ったのは、行ったことのある国と街を登録して、地図に表示することができるWebアプリケーションです。使い方としては、プロフィールページのリンクをSNSに載せたり、地図をiframeタグで他のサイトに埋め込むことを想定しています。

プロフィールページの具体例
[https://bokenmap.com/hikaru](https://bokenmap.com/hikaru)

![](https://storage.googleapis.com/zenn-user-upload/1a137814df90-20240408.jpg)
*こういう感じの地図が作れる*

[自分の個人ホームページに埋め込んでみた例](https://hikaruimai.vercel.app/travel)

## 課題

僕は旅行が好きなんですが、ウェブ上で「行ったことのある国」をパッと見せたい時に毎回困ります。ブログやSNSなどで自分の旅の経歴みたいなものを公開し

元記事を表示

[nodejs] 軽量でパワフル: Dayjsによる効率的な日付管理

# はじめに
日付と時刻の操作は、Web開発において一般的かつ重要なタスクです。JavaScriptの標準Dateオブジェクトは使いづらいと感じる人も多く、これを解決するためのライブラリがいくつか存在します。

Dayjsは、そのようなライブラリの中でも特に軽量でありながら、必要十分な機能を提供することで人気を博しています。

# Dayjsの特徴
1. 軽量性: Dayjsは非常に小さいサイズで、パフォーマンスに影響を与えることなくプロジェクトに組み込むことができます
2. 使いやすさ: Dayjsは一連の操作はチェインできます
3. 不変性: Dayjsは操作を行っても元のインスタンスを変更せず、新しいインスタンスを返すため、バグの発生を防ぎやすいです
4. 拡張性: プラグインを通じて機能を拡張でき、必要な機能を柔軟に追加することができます
5. 国際化対応: 多言語に対応しており、グローバルなプロジェクトにも適しています
# 基本的な使用方法
### Dayjsのインストール
“`
npm install dayjs
“`
### 日付の作成、フォーマット変更
“`typ

元記事を表示

HackTheBox Codify WriteUp

今回はHackTheBoxのEasyマシン「Codify」のWriteUpです!
名前からしてコードを書いて攻略していくような感じになるのでしょうか…

![スクリーンショット 2024-04-07 15.35.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/f1f8966b-edfc-bcfc-0651-d56af756bf1c.png)

グラフはしっかりEasyマシンのようなグラフになっていますね。
評価も高いので楽しみです!攻略目指して頑張ります〜!

HackTheBoxって何?という方は下記の記事を見てみてください!一緒にハッキングしましょう〜!

https://qiita.com/WhizOwl/items/165783694cb4791cff34

また、HackTheBoxで学習する上で役にたつサイトやツールをまとめている記事もあるので、合わせてみてみてください!

https://qiita.com/Perplex/items/30f949fe261f56a

元記事を表示

【Go / Protobuf / Node.js】gRPC の双方向ストリーミングを利用してチャットを実装する

※ この記事は 2022年10月 に作成したものを一部改稿したものです。

**gRPC** は RPC (Remote Procedure Call) の一種で、Google が自社サービス向けに開発したものをオープンソース化した技術です。
RPC はあるコンピュータ上で動作するプログラムから別の場所にあるプログラムの処理を実行する手法で、1970年代から存在する考え方です。

gRPC では、HTTP/2 の「ストリーム」を利用してサーバ – クライアント間で接続を確立することで、HTTP/1.1 のように1つのリクエストに対して1つのレスポンスを返すだけでなく、複数のリクエスト・レスポンスを並行して処理することができます。

そこで本記事では、gRPC の双方向ストリーミングを利用して CLI 上で動作する簡易的なチャットアプリケーションを実装してみようと思います。

## gRPC の特徴
実装に入る前に、APIの構築に最もよく使われる REST との対比を交えて gRPC の特徴について見ていきます。

まず通信方式については、REST は先述の通り HTTP/1.1 が主流

元記事を表示

nodejsのAPIをGraphQLで実装してみた

## はじめに
GraphQLというものをなんとなく知っていたものの、ちゃんと理解できてなかったなと思い
今回簡単な実装を交えて勉強しました。

## GraphQLってなに?
GraphQLは、Web APIのためのクエリ言語であり、データ操作と取得のためのランタイムです。
Facebookによって2015年に開発され、以降、データを効率的に取得する方法として急速に普及しています。
GraphQLの主な特徴は、クライアントが必要とするデータの形をクエリで明確に指定できる点にあります。
これにより、過剰または不足なデータの取得を避け、アプリケーションのパフォーマンスを最適化できます。

### Restとの違いは?
下記の違いがあります。
| 特徴 | GraphQL | REST |
|————–|—————————————–|—————

元記事を表示

WSL:Ubuntu環境でnodeのアップデートで詰まった

## 環境
osはwindows11でwsl2を用いて、Ubuntuを使用しています。

## 警告文が表示される
“`terminal
npm v10.5.1 does not support Node.js v18.16.0. This version of npm supports the following node versions: `^18.17.0 || >=20.5.0`. You can find the latest version at https://nodejs.org/.
“`
要約すると、
あなたのnpm v10.5.1はnode v18.16.0をサポートしてないよ。
だから、nodeのバージョンをv18.17.0かv20.5.0以上にアップグレードしてください。
って感じです。

## アップデートに詰まる
じゃあ、アップデートすれば終わりやんと思って
“`terminal
sudo apt update && sudo apt upgrade
node -v
sudo apt-get install nodejs
node -v
“`
で解

元記事を表示

OTHERカテゴリの最新記事