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

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

Next.jsアプリをAmazon Lightsailでホスティング

vercelだと簡単にホスティングできるが、DBを持っておらず外部のDBに繋ぐとクソ重いので、LightsailでホスティングもDBも持つ

# この記事で出来ること
Next.jsで作られたHTTPSサイトのホスティング
他のnodeアプリでも応用可能
10分くらいでできる

# 作業内容
[Aamazon Lightsail](https://aws.amazon.com/jp/lightsail/)でnode.jsインスタンスを起動
static ipを取る
DNSを設定する

インスタンスにsshでログイン

アプリをgitからclone

apacheが既に入っており、設定もあるので、用意された設定をコピー

“`bash
sudo cp /opt/bitnami/apache/conf/vhosts/sample-vhost.conf.disabled /opt/bitnami/apache/conf/vhosts/sample-vhost.conf
sudo cp /opt/bitnami/apache/conf/vhosts/sample-https-vhost.co

元記事を表示

WebRTC + Socket.ioについてSTUNサーバとの接続で701エラー

備忘録です。

Node.js
Socket.io
Angular

webRTCを使って、
STUNサーバを使ってNAT越えを試みるも
701エラー

原因は、
マイク・カメラを使うために、サイトをhttps対応させたのに対し、
socket.ioでの通信をhttps対応させていないことでした。

下記参考
https://qiita.com/MahoTakara/items/71977be2d18405fe7339
https://socket.io/docs/v3/server-initialization/
https://qiita.com/jinnai73/items/638dcc1434d47b12e6ba

socket.ioをhttps通信に切り替えて、通信成功
なお、CORS対応がhttpのままでエラーを吐いたりしたので、
そこの修正もお忘れなく。
またクライアント側から接続を試みるURLも当然httpsに変更になります。

資料には、ApacheをSSL対応する資料も。

雑ですが、以上です。

元記事を表示

特定のUSBデバイスを鍵にして、プログラムと連携させる

USBデバイスにはそれぞれ固有のIDが割り振られています。
特定のUSBデバイスが挿入されたときに、プログラムで処理をしたいときに使えるNode.jsのライブラリを公開しました。

https://github.com/TakutoYoshikai/usbkey

## 使い方
### インストール
以下の二つのコマンドを実行する。
“`bash
npm install -g TakutoYoshikai/usbkey

# ローカルのnode_modulesにもインストール
cd /path/to/project
npm install –save TakutoYoshikai/usbkey
“`

### USBデバイスの登録
このコマンドを実行した後、USBデバイスを挿入する。
“`bash
usbkey-register
“`
`./usbkey`というファイルが生成されます。これが登録されたUSBメモリを検知する、ハッシュ化されたパスワードのようなものです。

以下のJavaScriptファイルを用意し、好きな処理を追加する。

“`javascript:inde

元記事を表示

nodeアプリをさくらのVPS で動かす

忘備録です。

## OSインストール
https://manual.sakura.ad.jp/vps/os-reinstall/reinstall.html

「スタートアップスクリプト」 ・・・ なんか色々機能があって便利だった。必要なものを入れる。
「パケットフィルター設定」 ・・・ firewallの代わり? 必要なポートは開けておく
「サーバーへのSSHキー登録」

## 初期設定

“`terminal
ssh root@xxx.xxx.xxx.xxx
yum update
adduser 〇〇〇〇
passwd 〇〇〇〇
cd /etc/ssh
cp sshd_config sshd_config.old
vim sshd_config
“`
↓ここを変える
“`terminal:sshd_config
PermitRootLogin no
“`

“`terminal
systemctl restart sshd.service
“`

## 環境設定

“`terminal
yum install httpd
systemctl start httpd

元記事を表示

(再現度高め・無料)初学者のためのWEBアプリ公開マニュアル

初学者ながらjavascriptでアプリを作成して誰かに見せたいが、
・公開をする方法がわからない・・・
・ものすごく公開するまでが大変な気がする・・・
というのが悩みでした。

しかし、簡単なNode.js(express)の記述と、GitHUbへのpushさえできてしまえば、Herokuでそこそこ簡単に公開できることを学びました。
スマホにも対応してくれます。

実際の公開方法を細かく説明いたします。

■注意:
・筆者自身、GitHubをよく理解しておらず、Herokuもよく理解していないため、GitHUbにpushすると、Herokuで公開できるという認識しかございません。
・コードを簡潔に理解するため、非同期処理を用いません。
・個人情報を含むアプリはpushしないでください。
・GitHUbへのpushに相当てこずりました・・・正しい方法でない可能性があります。

■実行環境
・windows10 pro
・vscode
・node.js(16.17.0 LTS)—要インストール
・git bush—要インストール
(ターミナルはgit bushを使ってください)

元記事を表示

誰にも見つからない暗号通貨の秘密鍵の隠し方

暗号通貨の秘密鍵を管理するときに、どこに保管するかは迷うところ。紙に書く人もいれば、iPhoneのメモ帳に保存しておいたり、どこに保存していても盗まれてしまう可能性があります。

どこに保管していたら、見つかりにくいだろうと考え、その一つの選択肢として、コマンドラインツール「dirsha」を開発しました。

![スクリーンショット 2022-08-26 0.42.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149717/5761e0c2-1e99-e8ce-b011-96c0bd63b849.png)

これはただのnpmパッケージがインストールされたnode_modulesディレクトリですが、ここにEthereumの秘密鍵が隠されています。この中のどれかのディレクトリに記録されてる訳ではありません。

### インストール
“`bash
npm install -g TakutoYoshikai/dirsha
“`

先ほどのnode_modulesの中で以下のコマンドを実行する
“`b

元記事を表示

(メモ)nodejsのアップグレード(12から16に。RHEL環境)

nodejsのバージョンを12から16に上げました。
Red Hat Enterprise Linux の環境です。
やり方をいつも忘れるのでここにメモ。

“`
sudo curl -sL https://rpm.nodesource.com/setup_16.x
sudo yum remove -y nodejs npm
sudo yum list available nodejs
sudo yum install nodejs
“`

nvmなどをインストールしておきたくないので、一度リムーブして再度入れなおす、ということで対応しています。
(私の環境だとsudoをしないとインターネットアクセスができなかったのでcurlの前などもsudoをしています。)

元記事を表示

GoogleAppsScriptは何で書くべきか(公式orローカル / JSorTS )

# 初めに

ライブラリ等でメリットデメリットが大きく変わってくるため、
大雑把になっています

# GoogleAppsScriptを書く手段

– 公式サイトで作成する
– 公式エディタ([https://script.google.com](https://script.google.com))でJavaScriptで記載する
– ローカルで作成する(EditorはVSCode)
– JavaScriptで記載し、そのままclaspでpushする
– TypeScriptで記載し、そのままclaspでpushする(自動でトランスパイルされる)
– JavaScript/TypeScriptで記載し、webpack等を使ってビルドして、claspでpushする

# それぞれのメリット・デメリット

## 公式エディタを使って、JavaScriptを使う

### メリット

– ライブラリ,サービスの使用やデプロイを、GUIで書ける
– JSDocで型を記載できる(paramとreturnしか使えない)
– 一応Gitが使える(拡張機能をインストー

元記事を表示

hrefやsrc属性のパス名の修正漏れをチェックするために属性値をリストするコマンドを作った

imgタグのsrc属性やaタグのhref属性などに書くパス名を本番環境ではサイトルート相対にしておく必要があったので、ちゃんと書き換えたかHTMLファイルを提出する前にチェックしたい。他にもimgタグのalt属性に書き忘れがないかなども。

こんな時、HTMLエディタ上でファイル内を検索しながらチェックするのが面倒だったので、HTMLファイルからタグの属性と設定値をリストに出力するコマンド[list-attr](https://github.com/kazhashimoto/list-attr)をnode.jsで作りました。

https://github.com/kazhashimoto/list-attr

## 使い方
以下の例で、入力のサンプルに使ったindex.htmlは記事の最後にあります。

### imgタグのsrc属性やalt属性をリストする
コマンドにオプションを指定しない場合は、imgタグのsrc属性とalt属性を抽出します。

“`bash
list-attr index.html
“`

list-attrコマンドからの出力は属性が1行につき1個ずつ表示

元記事を表示

UE AIメモ

大体こんな感じ?

↓を確認する

**Composite**でAIの処理の流れを作成する
**Task**で基本的にやらせたいことを作成する
**Service**でBlackboardのデータ更新を監視する
**Decorator**でTaskが十港可能か判断する

# Composite
>Composite ブランチのルートを定義し、そのブランチの実行方法の基本的なルールを定義するノードです。デコレーター を適用すると、ブランチへのエントリの変更や、実行中にキャンセルができるようになります。また、コンポジットの子が実行されている場合にのみアクティブになる サービス を追加することもできます。

## Selector
処理を選択する

## Sequence
処理を順番に行う

# Task
https://docs.unrealengine.com/4.27/ja/InteractiveExperiences/ArtificialIntelligence/BehaviorTrees/

元記事を表示

blastengineのNode.js SDKで利用状況を取得する

blastengineは開発者にとって使いやすいメール配信サービスを提供しています。まだサービスローンチしたばかりでSDKが不足しているのですが、徐々に開発を進めています。

現在Node.js向けにSDK開発を進めていますが、blastengineの利用状況を取得するAPIに対応しましたので、その使い方を解説します。

[blastengine – npm](https://www.npmjs.com/package/blastengine)

## ユーザ登録する

blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。

![getting-started-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/515541ad-b74e-e1e2-ac34-46d181ee2924.jpeg)

## 送信元ドメインのSPFを設定する

送信元として利用するドメイン(自分で持っているもの)の設定を

元記事を表示

blastengineのNode.js SDKで一斉配信用メールアドレスをCSVアップロードする

blastengineは開発者にとって使いやすいメール配信サービスを提供しています。まだサービスローンチしたばかりでSDKが不足しているのですが、徐々に開発を進めています。

まず最初にNode.js向けにSDK開発を進めていますが、一斉配信用にメールアドレスをCSVアップロードできるようになりました。この記事ではその使い方を解説します。

[blastengine – npm](https://www.npmjs.com/package/blastengine)

## ユーザ登録する

blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。

![getting-started-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/515541ad-b74e-e1e2-ac34-46d181ee2924.jpeg)

## 送信元ドメインのSPFを設定する

送信元として利用するドメイン(自分で持って

元記事を表示

Node.jsでUUIDを生成する(crypto.randomUUID)

# Node.js
Node.js 14.17.0からはサードパーティライブラリを使わずとも、標準のCryptoモジュールでUUID v4を生成できる。

“`js
const crypto = require(“crypto”);
console.log(crypto.randomUUID());
// => 49affff9-0216-46ed-902c-b3324fd6d094
“`

https://nodejs.org/docs/latest-v14.x/api/crypto.html#crypto_crypto_randomuuid_options

# ブラウザの場合
ブラウザでも `crypto.randomUUID()` でUUIDを生成できる。

https://developer.mozilla.org/en-US/docs/Web/API/Crypto/randomUUID

# 上記2つとも使えない場合

[こちら](https://www.30secondsofcode.org/js/s/uuid-generator-node)で下記コードが紹介されて

元記事を表示

Angular+Socket.ioでチャットアプリを作る(UUIDでルームの作成)

Angularでチャットアプリ+αを作ろうと検討中。

ほとんど全く何もわからないところから始めたので、いろいろ書いてとっておきたいことはあるが、忘れてしまったので、余裕があったら…

ちなみに、開発環境は
Windows 11(64bit)
VS Code
Node.js
Angular(バージョンは忘れた)

本番環境は
Cent OS(たしか8)
Node.js
Apache

こんなところです。
AngularでビルドしたWebアプリケーションは、Apacheで動くようにビルドされるので、本番環境ではApacheがあれば動きます。
自分は開発して、`ng serve`を使ってlocalhostでテスト(?)して、テストが終わったら、`ng build`でビルドして、出来上がったものをWinSCPで本番環境の`/var/www/html/`下にできたファイルをまとめて置いて、あとはアクセスするだけ、という認識です。
本番環境のNode.jsは主にsocket.ioを使った双方向通信の実現のためにアクセスするサーバとして用意しています。
なお、DBは導入予定で、MEANスタック

元記事を表示

jest で uuid がインポートされているファイルを読み込むとエラーになってしまう。

## 環境
– nodejs: 14.17.6
– uuid: 8.3.2
– nextJs: 12.1.0
– typeScript: 4.6.2

## エラー内容
uuid パッケージが ECMAScript に対応していないのが原因かな??
“`sh
● Test suite failed to run

Jest encountered an unexpected token

Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.

Out of the box Jest supports Babel, which will be used to transform your files into valid JS based on your Babel c

元記事を表示

Express.jsを勉強しなおしたログ(環境構築する上で、判断に困ったところなど)

この記事は、今更ながらExpress.jsを勉強しなおした時のログです。
具体的なやり方は、いろいろと優秀なドキュメントがありますゆえ、あまり書いていません。
一方で、判断に迷ったり困ったところをメモしています。
(似たようなパッケージがあって、どれを使えばいいのかの比較など)

とりあえずの環境構築までを書いています。

Express.jsを使っている方は、目次を適当に見て、気になったところだけ見ていただけると何か見つかるかもしれません。
Express.jsを勉強中という方は、ざっと読み通しておくと、なにか救われるかもしれません。

くらいの温度感で書いています。

## Express.jsって

Webアプリフレームワーク。
[StateOfJavaScript2021](https://2021.stateofjs.com/en-US/libraries/back-end-frameworks)を見た感じ、JavaScript系のWebフレームワークでは、一番使われているっぽい。

## なぜ学習するのか?

ウェブアプリを作るときに、[Laravel](https:/

元記事を表示

TypeScriptでuuidをインストールしているのにCannot find module ‘uuid’

# はじめに

この記事は2022年8月にまとめていた「細かいつまずいたことをメモしておく(8月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください

# 問題

TypeScriptの環境で以下のコマンドでuuidをインストールしているのにエラーが消えなかった

“`
# 以下をインストールしたがエラーは消えなかった
$ npm install uuid@8.3.2
$ npm install uuid
$ npm install -g uuid
“`

# 解決方法

TypeScriptを利用しているなら以下のコマンドで定義ファイルをインストールする必要がある

“`
$ npm install –save-dev @types/uuid
“`

元記事を表示

Reactのnpx create-react-appでパーミッションエラー

# はじめに

この記事は2022年9月にまとめていた「細かいつまずいたことをメモしておく(9月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください

# 問題

DockerでNode.jsの環境を作成してコンテナ上で
`npx create-react-app my-app`としたところ

“`
/tmp/npx665626933.sh: 2: create-react-app: Permission denied
“`

というエラーが発生した

# 解決方法

以下のコマンドで成功した

“`
$ npm install -g create-react-app && create-react-app my-app
“`

# 問題再び

TypeScript環境をつくろうと以下のコマンドをコンテナ上で叩いた

“`
$ npx create-react-app app –template typescript
“`

そしてやはりエラーがでてしまった

“`
https://www.google.com/search?q=

元記事を表示

npm run devでERR_OSSL_EVP_UNSUPPORTEDでビルドに失敗する

# はじめに

この記事は2022年9月にまとめていた「細かいつまずいたことをメモしておく(9月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください

# 問題

`npm run dev`をしたところ以下のエラーが発生した

“`
ERR_OSSL_EVP_UNSUPPORTED
“`

Webackのビルドがうまくいかない

# 解決方法

“`
export NODE_OPTIONS=–openssl-legacy-provider
“`

としたところビルドができるようになった

# 参考

https://stackoverflow.com/questions/69394632/webpack-build-failing-with-err-ossl-evp-unsupported

元記事を表示

Node.js (NestJS) で csv ファイルを読み込む(4つのライブラリ比較)

## はじめに

Node.js (NestJS) で csv を読み込むには、使用できるライブラリが4つほどあります。
備忘と比較のため、ここではそれぞれのコードを記載していきます。

|項番|名称|参考サイト|
|—|—|—|
|1|csv-parse|[npmjs – csv-parse](https://www.npmjs.com/package/csv-parse), [CSV for Node.js](https://csv.js.org/)|
|2|csv-parser|[npmjs – csv-parser](https://www.npmjs.com/package/csv-parser), [OpenBase – csv-parser](https://openbase.com/js/csv-parser/documentation)|
|3|csv|[npmjs – csv](https://www.npmjs.com/package/csv), [初心者のためのCSV読み込み・JSON変換まとめ!](https://www.sejuku.net/bl

元記事を表示

OTHERカテゴリの最新記事