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

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

npm run(npm scripts)を経由すると200msから300msぐらい遅いので対策する

“`package.json
“scripts”: {
“sleep”: “sleep 1”,
“`

“`sh:npm run sleep
real 0m1.365s
user 0m0.238s
sys 0m0.066s
“`

“`sh: sleep 1
real 0m1.008s
user 0m0.001s
sys 0m0.004s
“`

環境によりますが200msから300ms程度オーバーヘッドが増えます
開発者体験のほか、CI/CDにも影響が出てきます。塵も積もればコストとなります

気になる方は自分たちのscriptsで検証してみましょう

# 対策

npm scriptsを使わず、直接実行しましょう。

単純なコマンドならscriptsに記述したものを直接実行する。
npmでインストールしたパッケージをcliで使う場合、
`./node_modules/.bin/各種パッケージ`で実行できます
もしくは`./node_modules/.bin`にPATHを通しましょう

もちろん高速化と引き換えに運用管理面で手間が増えるのでトレードオフです

元記事を表示

docker + nextjs + React + typescriptで開発環境を整える

# 開発環境を作る

## dockerでnodeの開発環境を作成する

### 任意のフォルダの以下のsrcディレクトリとdocker-compose.yamlを作成する

#### 以下の作業はWindows上の作業

├ src/
├ docker-compose.yaml

“`docker-compose.yaml
version: ‘3’

services:
app:
image: node:lts # バージョン指定も可能 ex. node:12.16.1
container_name: nextExpressTest # コンテナ名は任意
environment:
– DEBUG=app:*
tty: true
# ホスト側のポート:コンテナのポート
ports:
– ‘3000:3000’
# ホスト側のsrcをコンテナのappにマウント
volumes:
– ./src:/app
working_dir: “/app

元記事を表示

Node-REDでobnizが繋がらない時のトラブルシューティング

こんにちは、のびすけです。

某授業でNode-REDからobnizを制御しましたが、Node-REDでプログラムが動いてるはずなのにobnizが動いていない、逆にNode-REDでプログラムを切っているはずなのにobnizが稼働しっぱなしになっている。といった事象が多発してしまったのでトラブルシューティング記事を書いておきます。

> ![スクリーンショット 2024-05-11 1.29.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/35387/cd5fe0d0-9c9c-2aba-117c-cef349516fe5.png “スクリーンショット 2024-05-11 1.29.54.png”)

## おさらい: obnizが起動しているかどうか

前提として、obnizはプログラムが起動して(しまって)いるときと、起動していない(正常に処理を止めらている)ときとでディスプレイの表示が違います。

– プログラムは起動していないけどWi-Fiには接続できている状態

これが通常に他のプロ

元記事を表示

obniz x Node-REDで停止処理

obnizをNode.jsで使う時は、毎回プログラムを起動してシャットダウンしてが行われますが、Node-REDの場合Node.jsのプロセスは起動し続ける仕様なため、プログラムの起動ではなく接続の解除を行って停止を行うという仕様になっています。

obnizノードを使ってプログラムの接続解除に使えるフローを置いておきます。

– コピペ参照用

“`json
[{“id”:”cb1d6d3a.017e1″,”type”:”debug”,”z”:”b3ffc87e7885414e”,”name”:””,”active”:true,”tosidebar”:true,”console”:false,”tostatus”:false,”complete”:”payload”,”targetType”:”msg”,”statusVal”:””,”statusType”:”auto”,”x”:490,”y”:320,”wires”:[]},{“id”:”11a346f0.5a4c19″,”type”:”obniz-function”,”z”:”b3ffc87e7885414e”,”obni

元記事を表示

Node.js 日時のフォーマット・妥当性チェック

# 日時の妥当性チェックしなくていいの?

ユーザーから送られてきたリクエストボディの日時のフォーマットを正規表現を用いてチェックする機能を追加したときに頂いたコメント。

確かに正規表現だけだと`2月30日`を`false`にすることやうるう年の判断が出来ない。
機能を追加しなければ!と調べた結果を忘れないようにまとめます。

### 前提
今回のリクエストボディは`YYYY/MM/DD HH:mm`の形式で送られてきます。
そのため日付のフォーマットが`/`区切りになっているかの判断も重要になってきます。
※今回実装している機能がリクエストボディの日付を外部APIに連携し、外部APIの指定で`/`区切りとなっているためリクエスト時点でこのフォーマットにして欲しいためフォーマットも固定にしております。

### Moment.isValid()
まず最初に見つけた方法は、`moment`パッケージに規定されているisValid関数を用いた方法。
参考にさせていただいた[stackOverflow](https://ja.stackoverflow.com/questions/6841

元記事を表示

nodebrewがinstallされているのにnode -vでエラーになる時

# はじめに

“`
$ node -v
“`

と打ったら

“`
zsh: command not found: node
“`

となった…。

“`
$ nodebrew -v

nodebrew 1.2.0


“`
nodebrewは入っているのに。。

# PCスペック

| 項目 | 情報 |
| — | — |
| OS | macOS Sonoma 14.4.1 |
| ハードウェア | MacBook Pro 16inc 2023 |
| プロセッサ | Apple M2 pro |
| メモリ | 32GB |

# 解決法

### patyを通せばOKです。

“`
$ cat ~/.zshrc
“`
と実行してみましょう。
中身が見えるはずです。

以下を実行して設定を追記します。

“`
$ echo ‘export PATH=$HOME/.nodebrew/current/bin:$PATH’ >> ~/.zshrc
$ source ~/.zshrc
“`

“`
$ node -v

v21.5.0
“`

元記事を表示

Mac Book Proでnodebrew installをしたらcurl: (23)エラーになった時

# はじめに

“`
$ nodebrew install v21.5.0
“`

コマンドを打ったらエラーになった。
その解消方法を紹介する。

# PCスペック

| 項目 | 情報 |
| — | — |
| OS | macOS Sonoma 14.4.1 |
| ハードウェア | MacBook Pro 16inc 2023 |
| プロセッサ | Apple M2 pro |
| メモリ | 32GB |

“`
$ nodebrew install v21.5.0
“`

実行すると

“`
Fetching: https://nodejs.org/dist/v21.5.0/node-v21.5.0-darwin-arm64.tar.gz
Warning: Failed to open the file
Warning: /Users/{ユーザーID}/.nodebrew/src/v21.5.0/node-v21.5.0-darwin-arm64.tar.gz:
Warning: No such file or directory
curl: (

元記事を表示

npm-check-updatesで簡単npm package管理生活

# はじめに

package.jsonに羅列されたnpm packageのバージョンを新しくしたい時に使用する**npm-check-updates**。

意外とやりたいタイミング多そうなユースケースの解説の記事がすぐ見つからなかったので、自分用メモ的に。

# 全ライブラリの更新

一番基本の使い方。
グローバルインストールしたくないのでnpxから。

“`bash
# チェック
npx -p npm-check-updates -c “ncu”

# 更新
npx -p npm-check-updates -c “ncu -u”
“`

# 特定ライブラリの指定

“`bash
npx -p npm-check-updates -c “ncu {パッケージ名}”
# e.g.
npx -p npm-check-updates -c “ncu prettier”
“`

# wildcardによる指定

アスタリスクを使用してwildcard指定が可能です。

“`bash
# e.g.
npx -p npm-check-updates -c “ncu aws

元記事を表示

Windows 11 に Node.js をインストール

# Windows 11 に Node.js をインストールしよう

## 目次
– [ダウンロード](#nodejsをダウンロードする)
– [インストール](#nodejsをインストールする)
– [確認](#インストールの確認)
– [まとめ](#まとめ)

## Node.jsをダウンロードする
まず、公式の [Node.js](https://nodejs.org/en) のウェブサイトにアクセスしてください。

最新の安定版をダウンロードするには、『Download Node.js(LTS)』をクリックしてください。

![node-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788028/8cf66780-8dbb-906a-d09f-49829a75edb9.png)

—–

## Node.jsをインストールする
ダウンロードされたインストーラを起動する。本的にインストーラに従って『 Next 』ボタンを押すだけでよい。

![node-install-1.png](h

元記事を表示

【Nodo.js】Macでnpmが使えなかった時の対処法

:::note warn
エンジニア初心者の投稿であるため、間違っている箇所が多くあるかと思います。
何かお気づきの点がありましたらご教授いただけると幸いです。
:::

## はじめに
Macにパソコンを変えてからNodo.jsを使用したかったため、Node.jsをインストールしようとコマンドと戦った出来事をまとめます。

## やってみたこと
ターミナルで以下のコマンドを入力した。
“`terminal:terminal
$ nodebrew install-binary stable
“`

以下のエラーがコマンドさんから返ってきた。
“`terminal:terminal
Fetching: https://nodejs.org/dist/v20.12.2/node-v20.12.2-darwin-arm64.tar.gz
Warning: Failed to open the file
Warning: /Users/ユーザー名/.nodebrew/src/v20.12.2/node-v20.12.2-darwin-arm64.tar
Warning: .gz: No

元記事を表示

Expressの起動方法(npm run ってなに?)

## npm run serve?

業務でモックサーバーのデータをもらい`README`を見ていると
見慣れないコマンドを発見。
“`
起動方法: npm run serve
“`

そのままコマンドをGoogle先生に聞いても`npm`コマンドに`run`はあるが
`serve`を指定しているものは見つからなかったので調べてみました。
※業務で見たモックサーバーはnodemonを利用していたため
今回の記事と少し状況が違いますが伝えたいことはnpm runの動作です

## 結論: package.jsonのscriptsに設定されたコマンドを実行している

説明のために以下の記事で作成したExpressサーバーを利用します。
[ExpressでWebサーバーを立ててみる](https://qiita.com/moody_engineer/items/f5773380ffc964cf10f3)

記事でも書いてますがExpressを起動するために以下のコマンドを実行すると記載し、実際に起動します。
“`
node app.js
“`

なら`npm run

元記事を表示

ExpressでWebサーバーを立ててみる

## Express

Node.jsのためのWebアプリケーションフレームになり
簡単にWebサーバーを作成できるので作っていく。
※外部APIを呼び出すことができないがAPI仕様書がある場合に
モックサーバーを作ってテストを行ったりしました。

今回はDockerを用いず自分のパソコンにWebサーバーを作成します。

### 実装してみる

Node.jsでプロジェクトを始める方法は下記ページを見てください。
[Node.jsを私用パソコンで始めてみる](https://qiita.com/moody_engineer/items/715a0783c3d9ae1caf06)

今回作成するフォルダ構成は以下になります。
“`
– src
|- app.js
|- package.json
|- package-lock.json
|- node_modules
“`

※もしNode.jsを私用パソコンで始めてみる、で`test`ディレクトリを作り、
`npm init -y`を実行していただいた場合は、`test`ディレクトリ直下に`

元記事を表示

Node.jsの対話環境

# Node.jsで対話環境を利用する

Node.jsにはJavaScriptのコードを対話的に実行ができる環境があります。

REPLは手軽にコードを実行できますので、簡単なテストやデバッグなどで使用可能です。

“`nodejs
node
“`

nodeコマンドを実行すると、「>」という表示がされます。
この状態でJavaScriptのコードを入力してエンターキーを押すとコードが実行されて戻り値が表示されます。

元記事を表示

Node.jsを私用パソコンで始めてみる

# Node.jsを始めてみる

2024年1月から開発業務未経験でSierに入社し、2月からNode.jsとAWSを用いた開発業務に関わっており、覚えてことを少しずつアウトプットしていきます。
※初歩的で浅い内容になると思いますが、未経験のときに欲しかった記事&自分が忘れないために記事としております。
もし誤った内容があればご指摘いただければ修正いたします。

最初はNode.jsを始めるための準備を行います。
※案外準備する段階って1回しかしないから忘れがち。。。

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

下記サイトからNode.jsのインストーラーをダウンロードしてください。
[Node.js](https://nodejs.org/en)

![スクリーンショット 2024-05-07 21.54.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763467/fbc1c191-86b9-4cee-4faf-dee8604ea02c.png)

四角で囲っている`LTS`とついているボ

元記事を表示

[Vite] Docker内でnpm run devしてもアクセスできない時の対処法

## 実現したいこと
ホストマシンから、Docker内で動く開発サーバへアクセスしたい。

## TL;DR
以下のコマンドを実行すると、開発サーバをexposeできる。
“`bash
npm run dev — –host
“`

## 環境
“`
npm == 10.7.0
vite == 5.2.11
“`

## 試したこと
とりあえず通常通りサーバを起動してみる。
“`bash
npm run dev
“`
すると、
“`bash
VITE v5.2.11 ready in 284 ms

➜ Local: http://localhost:5173/
➜ Network: use –host to expose
➜ press h + enter to show help
“`
このように表示された。このままでは、Dockerコンテナのローカルネットワークからでないと、開発サーバへアクセスできない。

そこで、言われたように`–host`を付して様子を見てみる。
“`bash
npm run dev –host
“`

元記事を表示

symbol-sdk@3.2.1で作るトランザクション

# はじめに

こんにちは。

symbol-sdkの3系、以前は3.0.7について書きました。
新たに、3.2.1がリリースされ、書き方が少し変わったので、ここに書き記しておきたいと思います。

https://www.npmjs.com/package/symbol-sdk/v/3.2.1

## 注意事項
書いてあるコードについて、正確性や完全性を保証するものではありません。あくまで参考程度として頂き、最新情報は公式ドキュメンテーションをご確認ください。

# 要点

## デッドライン

以前はこのような形でした。少し読むのが難しいですよね。

“`javascript
import symbolSdk from ‘symbol-sdk’;

const network = symbolSdk.symbol.Network.TESTNET;
const deadline = network.fromDatetime(new Date(Date.now() + 7200000)).timestamp;
“`

今回、新しくなって、すっきりしました。

“`javascrip

元記事を表示

fnmインストールした際にハマった「Node.js バイナリ”npm”が見つかりません:」

## 環境とバージョン
・windows10
・node 18.17.0
・npm 9.8.1

## エラー内容
Node.js バイナリ”npm”が見つかりません: パスが存在しません。Node.jsがインストールされていてPATHに含まれていることを確認するか、launch.jsonで”runtimeExecutable”を設定してください。

## 事象
vscodeを使用して起動しようとした時、上記エラーが発生して起動することができない

## 試してみたこと、確認したこと
・nodeやnpmは正常にインストールできていること
・fnmのインストールも正常にできていること
・launch.jsonの設定も問題なさそうなこと
(他メンバーとの差分を取って一致していることを確認)
・パスを正常に通せていること

## 原因、解決方法
**・vscodeを管理者権限で立ち上げる**
(権限不足周りで影響していたと思われる)
・次回以降vscodeがデフォルト管理者権限で立ち上がるように修正

## 参考記事
「Node.jsバージョン管理ツール「fnm」のインストール方法と使い方

元記事を表示

Node.js のExpressで学ぶミドルウェア

## ミドルウェア

#### ミドルウェアって何?

– コンピュータの分野で、コンピュータの基本的な制御を行うOSと書く業務処理を行うアプリケーションソフトウェアとの中間に入るソフトウェアのこと
– ある特定の分野に属するアプリケーションに対して、その分野に共通する機能や処理をアプリケーションに提供する

ググった結果、以上の説明がなされるが、あまり理解できない。

### 毎回行っている同一の処理を共通化し、再利用するためのしくみ

という説明に納得した。

“`sample.js
const express=require(‘express’),
app=express();

const logger=require(‘morgan’);

app.use(logger(‘dev’));
app.use(function(req,res,next){
console.log(‘this is middleware’);
next();
})

app.get(‘/hello’,function(req,res){
res.send(‘Hello W

元記事を表示

API Gateway + Lambda + Puppeteer で任意の Web ページのスクリーンショットを撮って S3 に保存する

## 背景
Lambda で Puppeteer 経由で Chromium を起動して任意の Web ページのスクリーンショットを撮り、画像として S3 に保存する処理を作りたい。

## 環境
– M1 MacOS Sonoma 14.4.1
– node v20.10.0
– typescript v5.4.5
– [@aws-sdk/client-s3](https://www.npmjs.com/package/@aws-sdk/client-s3) v3.569.0
– [@sparticuz/chromium](https://github.com/Sparticuz/chromium) v123.0.1
– [puppeteer-core](https://www.npmjs.com/package/puppeteer-core) v22.7.1

## 手順
– ローカル開発環境の構築
– handler を実装
– Lambda にデプロイ
– API Gateway の設定
– S3, CloudFront の設定

## ローカル開発環境の構築
### プロジェク

元記事を表示

MariaDBをnode.jsでMariaDBUtilクラスにしてみた。(メモ程度

# node.jsでmariadbを操作する基本的な記述

### 先頭でmariadbを使用するための宣言
“`javascript
const mariadb = require(‘mariadb’)
“`

### データベースを接続するために設定の記述
“`javascript
const pool = mariadb.createPool({
host: ‘localhost’,
user: ”, //データーベースを操作するユーザー名を記述する
password: ”, //操作するユーザーのパスワードを記述する
database: ”, //操作するデーターベース名を記述
// 同時接続数の制限(任意)をかけるために記述
//connectionLimit: 5
});
“`
###

“`javascript

pool.getConnection()
.then(conn => {
conn.quer

元記事を表示

OTHERカテゴリの最新記事