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

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

[黙示録] Macでnodebrew を使ってnode.jsをインストールする方法

Javascriptの勉強を始めて1ヶ月。
node.jsをようやくインストールしたので、自分のインストール手順を忘れないためにも記事に残しておきます。

# 環境
– Homebrew 3.5.3
– MacOS Monterey 12.4

# nodebrewのインストール
brewコマンドでインストールをしていきます

“` ターミナル:コマンド
brew install nodebrew
“`
以下のようなメッセージが表示されたので、メッセージ通りの初期設定を行っていきます。

“` コマンド:結果
You need to manually run setup_dirs to create directories required by nodebrew:
/usr/local/opt/nodebrew/bin/nodebrew setup_dirs

Add path:
export PATH=$HOME/.nodebrew/current/bin:$PATH

To use Homebrew’s directories rather than ~/.nod

元記事を表示

オレ的環境作成キット

# 環境
**2022/07/05**
・CentOS7
・Docker 1.13.1
・Docker-compose 1.18.0
・npm 8.5.5
・cockpit 195.12.

# コマンドs

“`
sudo yum -y install cockpit
sudo systemctl start cockpit
sudo systemctl enable cockpit.socket
sudo systemctl start firewalld.service
sudo systemctl enable firewalld.service
firewall-cmd –add-port=9090/tcp –permanent
firewall-cmd –remove-service=ssh –zone=public –permanent
firewall-cmd –reload
sudo yum install -y cockpit-docker
sudo yum install -y https://github.com/45Drives/cockpit-

元記事を表示

Docker-compose3でnode.js&express&mongodb&nginxの環境を整える[簡略版]

# はじめに
 Docker初心者でありながらGitHub初心者である人がいろいろと便利にするためにお試ししている最中です。Gitでmasterブランチを作成して、すべてのファイルをぶち込んでpushしてみたら、mainブランチに統合する方法が分からなくて困ってたりするけど、まぁ保存だけを考えたらmasterブランチだけでもいいかと思う所存です。

# 環境
**2022/07/05**
・CentOS7
・Docker 1.13.1
・Docker-compose 1.18.0
・npm 8.5.5

# インストール方法

### Dockerのインストール

Dockerのインストールはこれをコピペ。

“`
sudo yum -y install docker
“`

### Docker-composeのインストール

Docker-composeのインストールはこれをコピペ。

“`
sudo yum -y install docker-compose
“`

### npmのインストール

 npmのインストールはこれをコピペ。
 これはexpress-gen

元記事を表示

LINE WORKSからのcallbackメッセージを判定するExpressミドルウェア

# 背景
LINE WORKSのbotサーバを開発する際,受信したユーザからの応答(callback)が正しくLINE WORKS側から送信されたものなのか(改竄されていないか)を判定する必要があります。[LINE WORKSの公式ページ](https://developers.worksmobile.com/jp/reference/bot-callback?lang=ja)にはJavaのサンプルコードはあるのですが,JavaScriptのものは無かったため自分で実装しました。さらにこれをExpressのミドルウェアとして利用できるようにしましたので共有します。

# 環境
* Node v16.13.0
* npm 8.1.4
* Express 4.15.2

# 公式ページから
上述の公式ページには以下のような記述があります。

> Bot サーバーが受信した HTTP POST リクエストは、LINE WORKS プラットフォームから送信されていない危険なリクエストの可能性があります。 必ず署名を検証してから、イベントオブジェクトを処理してください。

> メッセージサーバー

元記事を表示

【nodebrew】Use of uninitialized value $b1 in numeric comparison (<=>)の解決法

# 不要になったバージョンを削除すると。。。

“`console
$ nodebrew ls
v8.9.4
v12.16.3
v14.17.2
v16.15.1

// 指定のバージョンを削除
$ nodebrew clean v8.9.4

// なぜか削除されない??!
$ nodebrew ls
v8.9.4
v12.16.3
v14.17.2
v16.15.1
“`

と言う状況になりまして。。。

一回Finderから削除してみることにしました!
?は削除後
![Screen Shot 2022-07-03 at 21.21.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/21ec14c6-5bd5-0596-5edd-7732fd0693ce.png)

# `.DS_Store`が残ったせいかエラー
Finderから削除したからか、理由はよくわかりませんが`.DS_Store`が存在しているせいでエラーが発生・・

“`console
$ nodebrew ls

元記事を表示

マイクロサービス間の整合性を守る、消費者駆動契約テストをNode.jsで試してみる

[自ブログからの転載です。](https://blog.hedrall.work/posts/cdc-test-20220614)

![pact-logo](https://user-images.githubusercontent.com/20538481/173459948-57e93fb1-3881-4867-82b0-ec48f5da6d90.png)

# 概要

こんにちは。みなさんはタイトルにある、消費者駆動契約テスト(Consumer Driven Contract Testing, 以下CDC Testing)をご存知でしょうか?これは、マイクロサービス間のIFの整合性をテストするの仕組みです。

本記事ではCDC Testingの概要と、Node.jsでCDC Testing を実行する為のPactというテストフレームワークの紹介をしていきたいと思います。

# CDC Testingとは

システム開発を行う中では、他のシステムとの連携を行うシーンが多々あります。そんな時に、どんなパラメータを送ったらどんなレスポンスをしてくれるのか?について、まとまったドキュメ

元記事を表示

AWS SNSによる、メール送信・プッシュ通知(nodejs)

# 要件
検証済みのメールアドレスへメール送受信可能です。登録済みのグループ内のメールアドレスへ一斉送信します。

# 前提
– Node.js環境
– AWSアカウント
– メールアドレス事前登録し済み(topicやSubscription作成済み)

# 専門用語
– DeviceToken
モバイル端末(デバイス)固有の値
– EndPoint
配信対象端末を識別するためのデータです。
DeviceTokenより作成する、端末を識別するためのID
– Topic
配信対象をグルーピングし、配信対象に一斉に通知を配信するための機能です。
– Subscription
Subscriptionとは、作成したTopicと配信対象のEndPointを紐づけるデータです。

# 処理フロー
## プッシュ通知
![プッシュ通知フロー](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2491433/f3f1ae1c-4705-c935-9eab-f67ebfcfcd6b.png)
## メール送信
![メール送信フロー

元記事を表示

Amazon SESを使用してメールを送信する(nodejs)

# 要件
検証済みのメールアドレス、もしくは検証済みのドメインでのみメール送受信可能です。あるタイミングでアプリケーションから任意のメールアドレスへメールを送信します。

# 前提
– Route53 で登録しているドメイン名のアドレス (support@xxx.yyy.zzz) をFROMとする
– Node.js環境
– AWSアカウント

# ドメインの認証
## SESのコンソール
1. [Amazon SES コンソール](https://ap-northeast-1.console.aws.amazon.com/ses)を開きます。
2. ナビゲーションペインの [Create identities]をクリックします。
3. Identity typeのDomainを選択します。
4. DomainはRoute53で登録済みのドメインを記入します。
5. [Create identities]ボタンをクリックします。

## nodejs
nodejs経由の場合下記のドキュメントを参考
[ドメイン ID の検証](https://docs.aws.amazon.com/ja

元記事を表示

npm パッケージにOSネイティブファイルを入れて必要な物だけインストールさせる

npm パッケージに OS ネイティブのファイルを入れ複数プラットフォームに対応させたいが、容量等の問題で不要な物をインストールさせたくないというケースで、インストール時に必要なファイルだけ取得してくる方法を紹介します。

# 要約
ネイティブファイルのプラットフォーム毎にパッケージを作成し、package.json の `os` で対象 OS を指定します。
`–save-optional` で全プラットフォーム用のパッケージを参照すれば不要な物はスキップされます。

# サンプル
https://github.com/Hotspring-r/PlatformSpecificPackageTest

# 解説
サンプルファイルは4つのディレクトリがあり、src がパッケージを参照するソース。nativeTest が参照されるライブラリ、nativeTest-linux, nativeTest-win がそれぞれ linux, windows 用のネイティブファイルです。
src が nativeTest を、nativeTest が nativeTest-linux , nativ

元記事を表示

windowsでDocker開発はまだ使い物にならない

ホスト側のファイル・フォルダをバインドする時、windowsだと強制的にrootになるのがツラすぎる。
バリバリ開発してる人、どうやってるか教えて下さいませ

再現用のファイル一式は以下の通り。windows10で、WSLではなくwindows側のフォルダに設置する。
“`
//.env
COMPOSE_PROJECT_NAME=docker-file-volume-test

//docker-compose.yml
services:
node-sys-container:
build:
context: .
dockerfile: ./Dockerfile
volumes:
– type: bind
source: ./
target: /app/bind

//Dockerfile
FROM node:18.4.0-alpine3.15
USER node
WORKDIR /app
RUN touch /app/touch-file
CMD [“node”,”/app/bind/index

元記事を表示

【ZOOM API】フレームワークで会議作成アプリを作ってみた(Node.js体験)

## はじめに
こちらは、「Qiita Engineer Festa 2022」の参加記事です!

https://qiita.com/official-campaigns/engineer-festa/2022

自分自身、APIを使用したwebアプリを作ったことが無く、
何か作って動かしてみたいと思っていたところ、こちらのzoomキャンペーンで
テーマ「Zoom APIを実装してみた」を発見。

初の記事投稿も、勉強のためにやってみようと思い書いてみました。

## 作ったもの
ボタンを押すと即時ミーティングが表示されます。
押すたびに書き換わります。
![zoom_meeting-Google-Chrome-2022-07-02-17-36-36_Trim.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725328/e2de3943-0201-82b4-d05d-c981e9f7c2c3.gif)

## 実装方法について
zoomの参考ページにNodeでのコード例があったので、Node.j

元記事を表示

npm installlをすると出てくる警告の解消

初めまして、現在ReactーReduxを勉強中のものです。

今回は、「npm install」をすると出てくる警告がうざかったので解消しようと思いました。

# 警告とは何?

`npm install`とかすると出てくるやつです。

“`
# コマンド
$ npm install –save –force @mui/material

# 以下警告文

npm WARN using –force Recommended protections disabled.

added 7 packages, removed 26 packages, changed 33 packages, and audited 612 packages in 6s

15 packages are looking for funding
run `npm fund` for details

21 vulnerabilities (6 moderate, 14 high, 1 critical)

To address all issues, run:
npm audit fix

R

元記事を表示

【CircleCI】config.yml 入門

# 概要
今更ながら実務にてcircleCIを使ってCI環境を1から構築するという経験をしました。
その中でこれがcircleCIの基本なのかと思う部分もありましたので、備忘として残そうと思います。
これからcircleCIを導入する方、設定値の概念がわからずどうすればいいのかわからないという方に参考になればと思います。

# CircleCIとは
Saas型のCI/CDサービスです。Saas型であるという点が特徴です。
CircleCIはクラウド上のコンテナを実行環境として使用することができます。
基本的にはコンテナ(docker)を使って実行環境を整えていくことが多いのではと思います。

# config.yml
CI/CDの設定は全て`.circleci/config.yml` に記載します。
`.circleci`ディレクトリは対象Gitリポジトリのトップに置きます。

# はじめに
まずはとにかく簡単な記述でもいいので動かしてみます。
下記のようなconfig.ymlを作成しました。

“`yml
version: 2.1

jobs:
build:
docke

元記事を表示

スマホでBLEをNodeJSチャレンジ(失敗)

AndroidスマホにてWebBluetoothでは実施済みだが、登録機器にアプリ立ち上がり時に自動接続を試したいことから、WebBluetooth<->ネイティブで実現できる自動接続を模索
スマホにNodeJS立ち上げてなんとかできないか?検証メモ

### 利用スマホ

* Pixel3 Android os 12
https://ja.wikipedia.org/wiki/Pixel_3

* A20 Android os 11
https://www.galaxymobile.jp/galaxy-a20/

### × Servers UltimateアプリでNodeJSサーバー

NodeJSサーバーが実行できるとのことで試す
Nodeサーバーがうまく立ち上がらず断念
ディレクトリのアクセスがAndroidOSで難しくなったせいなのか???
原因は解明の前に次の方法へ

#### 参考URL

https://play.google.com/store/apps/details?id=com.icecoldapps.serversultimate&hl=ja&gl=US

元記事を表示

mermaid.cliがWindowsでエラーを吐く場合の対処

mermaid.jsでsvgを作りたいと思って

“`shell
$ npm install -g mermaid.cli
$ mmdc -i diagram.md -o diagram.svg
“`

で起動したところ、

“`shell
node:internal/error:465
ErrorCaptureStackTrace(err);
^

Error: spawn EPERM
at ChildProcess.spawn (略)
at Object.spawn (略)
at Lancher.launch (略) {
errno: -4048,
code: ‘EPERM’,
syscall: ‘spawn’
}
“`
のエラーが。

不思議に思って、puppeteerの下にインストールされるChromiumを単独起動してみると、
Chromium上には「Google APIキーが欠落しています。Chromiumの一部の機能は無効になります」表示と、
consoleには「Failed to load resource: net::ERR_FAIL

元記事を表示

C++ で作った Node.js 用アドオンから任意のタイミングで JavaScript の関数を呼び出すクラスを作ってみた

こんにちは、wattak777 です。

# はじめに

筆者は C/C++ 畑の経験が長かったためか、Node.js でプログラムを組んでいると「C や C++ でやった方が早く作れるのになぁ」と C++ のアドオンで実装することがしばしばあります。

この時、C++ から JavaScript の関数を呼び出したい場合、JavaScript 側からコールバックを指定すれば(下記例)呼べますが、JavaScript から呼び出しトリガーが必要となります。

“`JavaScript:呼び出し側.js
const addon = require(‘./build/Release/addon’);
addon.func(arg, (result) => {
console.log(‘call back.’) ;
}) ;
“`
“`C++:アドオン側.cpp
// 仕掛け等は省略
// JavaScript 側から「func」と呼ばれると「func」が呼ばれるような仕組みになっていると想定
func( Napi::CallbackInfo& info )
{

元記事を表示

Node.js での認証情報の設定

## はじめに
プログラミング時に認証情報の提供方法によってセキュリティ、保守作業に影響しますので、
どの方式を採用するかを考慮する必要があります。

## AWSのNode.js での認証情報の設定
### AWS 推奨の順序で認証情報を提供する方法
– Amazon EC2 の AWS Identity and Access Management (IAM) ロールからロード
– 共有認証情報ファイル (~/.aws/credentials) から読み込む
– 環境変数から読み込む
– ディスク上の JSON ファイルから読み込む
– JavaScript SDK によって提供されるその他の認証情報プロバイダークラス

### SDK で利用できる認証情報ソースが複数ある場合、デフォルトの選択優先順位
– サービスクライアントコンストラクタで明示的に設定されている認証情報
– 環境変数
– 共有認証情報ファイル
– ECS 認証情報プロバイダーからロードされた認証情報 (該当する場合)
– 共有 AWS 設定ファイルまたは共有認証情報ファイルで指定された認証情報プロセスを使用して取

元記事を表示

Jestのmockを使いES6クラスのテストを実装してみた 様々なモックの作成方法

## 以下の記事を参照して頂ければと思います

https://note.com/shift_tech/n/nb2f427093fd8

**※Qiitaの記事は全て個人的な記載であり、所属する組織団体とは無関係です。**

## 補足
ソースコード全体は以下。

https://github.com/yuta-katayama-23/node-express/commit/435c2b3d4b2759fa19c20de59de6e8215f8a445f

https://github.com/yuta-katayama-23/node-express/commit/8da10b36cd23c9868d9f5ead1311c40dc3935425

## おまけ
上記で見てきたES6クラスの実装の仕方の都合上、例えばExpressで利用する際には以下のようになるだろう。

“`js
import express, { Router } from ‘express’;
const router = Router();

const port = process.env.PORT ||

元記事を表示

テキストファイルの文字コードを変換する

### 環境
Ubuntu 20.4 + Vagrant(Windows10)
Node.js v16.14.0

### はじめに
テキストファイル(CSVファイルなど)の文字コードを判断して、S-JISであれば、UTF-8に変換する関数の紹介です。プラットフォームがWindows10であるため、Vagrant環境で動作しているUbuntuとファイルのやり取りがよく発生します。つまり、Windows環境で作成した、S-JISのファイルを、Ubuntu環境で扱うために、UTF-8にいちいち変換しなくてはいけないことになります。それを、Node.jsでサクッと行えるようにしたので、そのご紹介です。

### 解説
2つの外部ライブラリを使っています。**jschardet**と**iconv-lite**です。この2つのライブラリは、**npm**で別途インストールする必要があります。**jschardet**はファイルの文字コードを判断するライブラリで、**iconv-lite**はファイルの文字コードを変換するライブラリです。

**jschardet**でファイルの文字コードを判断

元記事を表示

依存モジュール(ライブラリ)のライセンスをチェックする仕組みを導入してみた

## 以下の記事を参照して頂ければと思います

https://note.com/shift_tech/n/n6fd1f955658b

**※Qiitaの記事は全て個人的な記載であり、所属する組織団体とは無関係です。**

## 補足
ソースコード全体は以下。

https://github.com/yuta-katayama-23/node-express/commit/ebc93a814273133a34329dfd3830504ee473a24f

## おまけ
以下では、

– [GPLライセンスについて](#gplライセンスについて)
– [Node.jsでもフロントエンドと同じようにwebpackで全てのモジュールをbundleするとどうなるか?](#nodejsでもフロントエンドと同じようにwebpackで全てのモジュールをbundleするとどうなるか)
– [フロントエンドのプロジェクトで使える他の方法](#フロントエンドのプロジェクトで使える他の方法)

の3つについてみていく。

### GPLライセンスについて
以下の記述については専門家ではないので、誤りがある

元記事を表示

OTHERカテゴリの最新記事