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

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

【Angular/node.js】ng new しようとしたところ、Node.js version v16.1.0 detected. The Angular CLI requires a minimum Node.js version of either v12.20, v14.15, or v16.10. Please update …で実行できない。

#前提
Angularアプリを新規作成するべく、`ng new app-name`のコマンドを打ったところ、下のようなエラーがでました。

“`
Node.js version v16.1.0 detected.
The Angular CLI requires a minimum Node.js version of either v12.20, v14.15, or v16.10.

Please update your Node.js version or visit https://nodejs.org/ for additional instructions.
“`

OS:MacOS BigSur(11.6)
Node.js:nodenv(brew)

# 試したこと
エラーに書かれている通り、とりあえずnodeのバージョンをv16.10を切り替えてみました。

“`
$ nodenv local 16.1.0
“`

“`
$ nodenv versions

12.2.0
12.18.3
14.15.5
* 16.1.0 (set by /Users/***

元記事を表示

Node-RED 2.1の新機能: HTTP Requestノードのログ機能強化

# はじめに
Node-REDのHTTP Requestノードを使うと、他のWebサービスの情報を取得したりREST APIを呼び出したりということが簡単にできます。しかし、これらを多用するようになると、「なぜか反応が悪い」「どこかで固まっているようだ」などのトラブルに見舞われることも増えてきます。

このような時は、ログなどを使って何が原因なのかを調べることになるのですが、今までのNode-REDではあまり詳しいログを出力することができませんでした。このため、たとえば[フレームグラフを出力して調査する](https://nodejs.org/en/docs/guides/diagnostics-flamegraph/)などの手のかかる方法で調査をする必要があります。

Node-RED 2.1では、HTTP Requestノードのメトリックログ機能が強化され、HTTP要求を行った際の詳細なタイミングのログが取れるようになりました。これによって、例えばDNSの名前解決が遅いのでHTTP要求に時間がかかっている、などの詳細な分析が簡単に行えるようになります。

以下にて、これまでのログ出

元記事を表示

【Volta + GitHub Actions】ワークフロー内での Node.js のバージョン管理を自動化するアクションを作った話

本記事は [GitHub Actions Advent Calendar 2021](https://qiita.com/advent-calendar/2021/github-actions) の7日目の記事です?

# 作ったきっかけ
プロダクトを運用していると、定期的に言語やライブラリのバージョンアップ対応が必要になると思います。Volta を使用している場合、Node.js のバージョンを上げる時に必要な作業はこの辺りでしょうか。

– volta pin コマンドを実行して、Node.js のバージョンを上げる
– GitHub Actions で Node.js のバージョンを指定している箇所を修正する
– etc…

複数箇所に Node.js のバージョンが記述されていると、いざバージョンを上げよう!となった時に修正すべきファイルが増えてしまうので、一元管理する方法を検討していました。
そこで、今回は Volta + GitHub Actions を使っている場合に Node.js のバージョンアップ業が少しだけ楽になるアクションを作りました。

#Volta と

元記事を表示

良いbotを作るためのasync/awaitとイベントループの基本(前編)

こんにちは。暗号通貨のボッターとして活動している黒枝と申します。

Advent Calendarの7日目と8日目の枠をお借りしています。

この記事ではPythonやNodejsで利用することのできる`async/await`を用いた非同期処理について、その背景や実際のところ何を実現したいのかについて考えてみたいと思います。

この記事の目標は次のような状態を、根っこの部分を知ることで抜け出すことです。

「あれ、なんでこれ動かないんだろう…あ、await取ったら動いた。よくわからないけどまあいいか」

シングルスレッドで扱う非同期処理は安定したウェブアプリケーションを書くために非常に有効ですが、理解が浅いとアプリケーションの動きを阻害してしまいます。

本稿では、この機能をイベントループという仕組みに触れながら、前編と、後編の二回に分けて解説を試みています。

コンセプトの掘り下げを本題のため、どのようにパラレルな呼び出しをするかや、どうやって複数の非同期処理を待つのかといった実用面はカバーしていません。また、コードの中では個人的に理解の深いNode.jsのコードを合わせて取り上げ

元記事を表示

【Node.js 2021】 WAVファイルを Node.js で再生する(Mac で node-wav-player を利用する)

この記事は、[2021年の Node.js のアドベントカレンダー](https://qiita.com/advent-calendar/2021/nodejs) の 8日目の記事です。

内容はタイトルの通りで、以下のものに関する記事です。

●node-wav-player – npm
 https://www.npmjs.com/package/node-wav-player

## 音の再生に必要なもの(Mac の場合)
node-wav-player のページ上部に、以下のような記載があります。

![環境.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/b5ff75db-decd-8955-a498-a007a7c26f97.jpeg)

自分の場合 Mac を使っているので「afplayコマンド」が必要になるようです。
例えば、以下の記事に afplayコマンドに関する記載があります。

●afplayコマンドをつかってMacにてターミナルからコマンドで音楽ファイルを再生する ?

元記事を表示

Google AnalyticsのAPIでリアルタイムの閲覧者数が分かるノードを公開してみました。 #noderedjp

こんばんわ、この記事は[Node-REDアドベントカレンダー](https://qiita.com/advent-calendar/2021/node-red)6日目の記事です。

Google AnalyticsのAPIを使うノードが無かったので作ってみました。

https://flows.nodered.org/node/node-red-contrib-google-analytics

## Webサイトなどの現在の閲覧者数がリアルタイムで分かります。

他のAPIなども触れたら良かったのですが、とりあえずアルファ版ということでリアルタイムの数字だけ取ってみました。

ちなみに、GA4のリアルタイムは過去30分間のユーザーという値になります。

例えば僕のQiitaの実際のアナリティクス画面で見ると13人が見ているらしいです。

> ![](https://i.gyazo.com/a07d64b9a1364cbb051ece55fb7cebf8.png)

これをこのノードを使うことでこんな感じで取得できます。

> ![](https://i.gyazo.com/4fbe

元記事を表示

Windowsでnodeのプロセス終了させる方法

JSフレームワークで「Port 3000 is already in use.」的なエラーが出てしまった時用のショートカット。
検索してもLinaxの解決方法ばかりで、若干探しにくいので備忘録的に書きておきます。

##実行コマンド
コマンドプロンプト等で実行。

“`
//エラーでalreadyになっているポート番号を最後に入れる
netstat -aon | findstr 0.0:3000

//下記は帰ってくる値の例 最後の数値をコピー
//TCP 0.0.0.0:3000 0.0.0.0:0 LISTENING 15856
“`

“`
//先ほど表示された数値を入れて実行
taskkill /pid 15856 /F
“`

###Linaxでの解決方法
“`
lsof -i:3000

//上のやり方と同様に帰ってきた数値を記入 5298部分
kill -9 5298
“`

元記事を表示

Javascriptのテクニック集①

# これは何?
気になった・実際に使ってみたいと思った Javascriptのテクニックをまとめてみました!!

## 参考にした記事
https://dev.to/irmerk/modern-javascript-techniques-4chc

—-
## 配列の初期化
配列のlengthプロパティを0にすることで、配列の中身を空にすることができる。

“` js
let array = [0, 1, 2, 3, 4]

array.length = 0
console.log(array); //[]
“`

また、他の配列の初期化方法として、単に[]を代入する方法がある。

“` js
let array = [“a”, “b”, “c”];

array=[];
console.log(array); //[]
“`

lengthを0にする場合との違いは、`再代入するのか`・`ただ、配列の中身を変更するのか`である
`let`ではなく、`const`を使用すると分かりやすい。

“` js
// lengthの場合
const array1 = [0, 1,

元記事を表示

?テストツール dredd? openapi の内容でテストを実行する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2291204/8682712f-2deb-d190-7bd3-d4d3b427b46a.png)

前職で使っていたツールの dredd について書いてみたいと思います。

dredd 公式サイト:
[Dredd — HTTP API Testing Framework — Dredd latest documentation](https://dredd.org/en/latest/index.html)

公式サイトより、issue のほうがいろいろ情報あるかも:
[Issues · apiaryio/dredd](https://github.com/apiaryio/dredd/issues)

dredd は openapi の仕様書をもとに、テストを自動で行ってるツールです。
(※api blueprint で書かれた仕様書でもOK)
すでに、openapi の仕様書を管理しているプロジェクトであれば、すぐに導入してテスト自動

元記事を表示

WoTとCHIRIMENについて

この記事は、 [大阪工業大学 Advent Calendar 2021](https://adventar.org/calendars/6716)の6日目の記事です。
(大阪工業大学 Advent Calendarは)初投稿です。
せっかくなので私が研究している分野であるWoTと使用しているCHIRIMENについて書いてみようと思います。

## WoTとは?
今回WoTについて2つのことを覚えていってください。
##### 1つ目が「”World of Tanks”の略ではない」ということです。
WoTとは、Web of Thingsの略で「モノのWeb」という意味です。IoTはInternet of Thingsの略で「モノのインターネット」という意味なのでその派生形だと思ってください。

※WoTについて詳しく知りたい人は”WoT”で検索するのではなく”Web of Things”で検索してください。そうしないとトップに”World of Tanks”の攻略記事しか出てこないので…

##### 2つ目が「WoTとは一体何なのか?」ということです。

IoTでは、様々なモノ同士が

元記事を表示

WebエンジニアのためのSymbol開発チュートリアル(Symbol Bootcamp for Developers)

株式会社CauchyEでエンジニアをしている松岡靖典と申します。NPO法人NEMTUSの設立メンバーでもあります。個人的にもNEM/Symbolを用いた開発に興味を持って色々と活動しています。

この記事では、NEM(NIS1)の次期バージョンとして2021年3月にとうとうローンチされたSymbolを用いたWeb開発を行うにあたり、Symbolブロックチェーンから必要な情報を参照したり、トランザクションを送信したりする方法の概要やコツのようなものをお伝えできればと思います。

## 本記事の実装について

以下レポジトリにてソースコードを共有しています。必要に応じてご参照ください。記事中のソースコードは一部のみが示されていてimport元の実装が明示されていない部分も多々あるので、必要に応じてこちらのレポジトリの内容を参照しながら内容を確認頂くとよいかと思います。

https://github.com/public-archive-service/sdk-typescript

## ノード

Symbolでは全世界に分散化された多数のフルノードが存在し、それらのフルノードではRes

元記事を表示

ベクトルタイルを使って星の海を探検する

ガイア計画というものを知りました。

https://ja.wikipedia.org/wiki/%E3%82%AC%E3%82%A4%E3%82%A2%E8%A8%88%E7%94%BB

https://www.cosmos.esa.int/web/gaia/home

欧州宇宙機関 (ESA) が打ち上げた専用の探査機で全天球の天体を観測してデータを蓄積するプロジェクトで、現在のデータ量は1.8TB、観測された天体の数は約1,900億個だそうです。このデータを利用して全天球の星の地図を作ってみました。 

### データのダウンロード

ガイア計画のデータは以下でアーカイブされていて、自由に利用できます。日本にもミラーサイトがあり国立天文台のウェブサイト jvo.nao.ac.jp からデータをダウンロードできます。今回は作業時点で最も新しい [EDR3](https://www.cosmos.esa.int/web/gaia/earlydr3) (Early Data Research 3) を使いました。

https://gea.esac.esa.int/archive

元記事を表示

Lisk SDKでブロックチェーンアプリケーションを作る

# はじめに
[Lisk](https://lisk.com/)って名前を知っていても[Lisk SDK](https://lisk.com/documentation/lisk-sdk/index.html)に触れたことがある人は少ないのでは、ということで今回記事にしました。
丁度いいところに、[アドベントカレンダー](https://qiita.com/advent-calendar/2021/blockchain)もあったしね。
構築手順を書いているので少し長いですがお付き合いください。

https://lisk.com/

# Lisk SDK ってなんぞ
ブロックチェーンとその上で動作するアプリケーション(ブロックチェーンアプリケーション)を構築するための開発キット。
これを使用して作成されたアプリケーションは独自のブロックチェーン上で動作します。
また、将来的にサイドチェーンとしてLiskにつながることが可能になります。
なお、JavaScript、TypeScriptで構築できるので非常に楽。(いや、ホントに)

:::note info
サイドチェーンとしてLisk

元記事を表示

Promiseのクイズです

Promise の登場で面倒な非同期処理がとても簡潔に扱えるようになりました。それでも、やはり非同期処理には違いないので、ややこしい部分もあります。そんなとき、筆者は簡単なコードを書いて、実際に試してみることにしています。

以下は、筆者が自分のために作ったコードレットをクイズにしたものです。Promise が分かりにくいと思う方は、トライしてみてください。

なお、検証した環境は、Node.js が v17.2.0、OS が Debian Linux v11.1 です。

#### 予備知識: Promise オブジェクトの状態
ここで、Promiseオブジェクトの状態をまとめておきます[^pstate]。

|状態|内容|
|:–|:–|
|待機中(pending)|初期状態。非同期関数は実行中|
|成功(fulfilled)|非同期関数の処理が成功した|
|失敗(rejected)|非同期関数の処理が失敗した。catchで処理する|

#### 第1問 Promise化
JavaScriptの既存の非同期関数を Promise オブジェクトを返す関数として再定義すること

元記事を表示

【micro:bit 2021】 PC と micro:bit を通信させる方法: Node.js・MakeCode でのシンプルなシリアル通信(USBケーブル接続)

この記事は、2021年の [micro:bit のアドベントカレンダー](https://qiita.com/advent-calendar/2021/microbit) の 6日目の記事です。

micro:bit を PC と USBケーブルでつないだ状態で、PC との間でやりとりをする方法の 1つである「シリアル通信」を扱います。
その中でも Node.js を用いたものについて、軽いお試しをしていく形です。

## 過去に micro:bit と PC との間の通信について書いた記事
過去にも、micro:bit と PC との間で何らか通信させる話を、以下のように複数書いています。

– Bluetooth関連
– [Web Bluetooth API を使い micro:bit とブラウザの間で BLE通信](https://qiita.com/youtoy/items/c98c0996458a21fc1e67)
– [あらためて noble でガジェットを扱う話に着手する: toio と micro:bit を複数混在させてスキャン、toio の複数制御(6台

元記事を表示

WebSocket通信のクライアント/サーバの環境構築

#要約
 WebSocket通信のクライアント/サーバの環境を構築する。お仕事でWebSocket通信のツール、環境が必要となった際にまとめたものです。
![ezgif.com-gif-maker (10).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/09204396-bfeb-3c66-dcda-b9751d24278c.gif)

“`javascript:wsのインストール
~/develop/wscatTest $ yarn init
yarn init v1.22.5
question name (wscatTest):
question version (1.0.0):
question description:
question entry point (index.js):
question repository url:
question author:
question license (MIT):
question private:
succe

元記事を表示

Serverless Frameworkでニュースサイトの新着記事をLINEで通知するアプリを作る

アプリケーション構築を学習する一環として、RSSフィードで配信された記事をLINE Messaging API経由で通知するアプリをServerless Frameworkで作りました。

友達追加すると、
follow

新着記事を定期配信したり、手動で取得したりすることができるアプリです。
![subscribe.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820066/f434fcda-7cf1-1b54-0324-99dbd5793f7d.png)

成果物は[Github](https://github.com/flets708/feed-notify)にアップロードしていますが、せっかくなのでアプリの概要と、ハマ

元記事を表示

Discord.jsv13でwebhookを使ってグローバルチャットを作る

#初めに
結構簡単だった
30分で組み立ててやったから細かいバグあるかもあったらBURI#9515まで連絡ください
Operation webhookv13.findOne() buffering timed out after 10000ms
というエラーはMONGOに関するエラーです

#必要なもの
aurora-mongo
discord.js
`npm i discord.js aurora-mongo`
Mongoのaccesskey
Mongoのaccesskeyの取得に関してはこちらを参照してください
[click me](https://www.youtube.com/watch?v=18hjrZCvxxk&ab_channel=BURI)

#コード
“`js
const {Client,Intents,WebhookClient} = require(‘discord.js’);
const client = new Client({
intents: [Intents.FLAGS.GUILDS,Intents.FLAGS.GUILD_MESSAGES,In

元記事を表示

Discord.jsv12でwebhookを使ってグローバルチャットを作る

#初めに
結構簡単だった
30分で組み立ててやったから細かいバグあるかもあったらBURI#9515まで連絡ください
Operation webhook.findOne() buffering timed out after 10000ms
というエラーはMONGOに関するエラーです

#必要なもの
aurora-mongo
discord.js@12
`npm i discord.js@12 aurora-mongo`
Mongoのaccesskey
Mongoのaccesskeyの取得に関してはこちらを参照してください
[click me](https://www.youtube.com/watch?v=18hjrZCvxxk&ab_channel=BURI)

#コード
“`js
const Discord = require(“discord.js”)
const client = new Discord.Client();
const mongo = require(“aurora-mongo”);
/*
arora-mongoを読み込む
すずねーうさんが作成したモジュール

元記事を表示

Discord.js v13で画像認証BOTを作ろう

#初めに
**バグがあったら至急BURI#9515に連絡!!**
今回は画像認証BOTを作ってみました
replitなどでは使えませんので了承してください

#必要なもの
Discord.js
canvas
aurora-mongo
`npm i discord.js canvas aurora-mongo`

mongodbのkeyの取得方法はこちら
[click me](https://youtu.be/18hjrZCvxxk)

Operation certification.findOne() buffering timed out after 10000ms
と言うエラーはロール権限ではなくMONGOに問題がありますもう一度動画を見ながらやってください

MONGODBが使えないよって方はこちらをクリック
[click me](https://qiita.com/minecraftomato1/items/2e0905b88824720df2a8#%E3%82%B3%E3%83%BC%E3%83%89mongo%E3%81%8C%E3%81%A7%E3%81%8D%E3%81

元記事を表示

OTHERカテゴリの最新記事