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

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

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

元記事を表示

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

元記事を表示

【初心者向け】npmについてよく知らない人のための教科書 ~npm installは何をおこなっているのか~

# はじめに
対象はnpmを学習し始めた人、npmへの理解が浅い人となります。
本記事は、npm(node package manager)に苦手意識があった筆者が克服するために勉強した備忘録です。

# 開発環境
– Apple M1
– Big Sur 11.6
– Node.js
– 16.13.0
– npm
– 8.1.0

# npmとは
こちらについては、[【初心者向け】NPMとpackage.jsonを概念的に理解する](https://qiita.com/righteous/items/e5448cb2e7e11ab7d477)をお読みください。
「パッケージとは何か」や「package.jsonとpackage-lock.jsonの違い」など、とても理解がしやすいようにまとめられております。
いつかこんな素敵な記事を書いてみたいです。

# npm installとは
– パッケージをインストールするコマンドです。
– package.jsonのdependenciesとdevDependenciesに書かれているパッケージをインストールす

元記事を表示

【IoTLT 2021】 ZIG SIM から送られるデータを p5.js Web Editor上で活用してみる

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

内容は、以下の記事を書いた時にも使った [ZIG SIM](https://zig-project.com/) の話がメインです。

●ZIG SIM と Node.js のプログラム(osc.js を利用)との間で UDP による OSC通信を軽く試す(OSC Data Monitor の話も) – Qiita
 https://qiita.com/youtoy/items/fddc750759f4ecef7ca7

これをブラウザ上で動く p5.js を使ったプログラムで活用します。
また、開発環境として p5.js Web Editor を利用します。

## ZIG SIM について
ZIG SIM はプロトタイピングに便利なアプリで、2〜3年前くらいに知ったものの、あまり活用できていませんでした。
それを、ちょこちょこ試し始めて、冒頭に掲載した記事を書いたりしていました。

### 公式の紹介

元記事を表示

【Node.js】Puppeteerで発生したUnhandledPromiseRejectionWarningエラーを解決する

#はじめに

普段はVue.js, Nuxt.jsを使った開発をしているのですが、興味本位でExpressにも触れている者です。見よう見まねでpuppeteerのコードを書いていたのですが、使いやすいように改造した際、エラーが発生。解決までに時間がかかったのでメモを残します。

“`bash
# エラー内容
UnhandledPromiseRejectionWarning: Error: Evaluation failed: ReferenceError: shop is not defined
“`
#原因

>$$eval内の関数はchrome上で実行されるもので、この中で事前に定義した変数とか使おうとするとエラる。

とのことでevaluate内で変数を使ったのが原因っぽいです。実際リファクタ前の文字列ベタ打ちの時はエラーが起きていなかったので。
#エラーが起きた時のコード
“`javascript
const postPrices = await page.evaluate(() => {
const prices = document.querySelector

元記事を表示

Discord.js v13で役職パネルを作る

#初めに
**バグがあったら至急BURI#9515に連絡!!**
今回はDiscord.jsv13を使って役職パネルを作ってみることにした
作るにあたって結構問題にぶつかった

foreachで配列の数だけ回そうとしたら非同期ではなかった
解決策
Promise.allを使った

mongodbに保存するときKeyがかぶって思い通りに動かない
解決策
メッセージID+カウントで回避するようにした

cacheされていないリアクションはイベントが発火しない
解決策
partialsを使った

解決しきれなかった問題
ロールが存在しなかった場合の処理がメッセージを消すという結構無理やりな感じになってしまった
誰かいい方法教えてください,,,
これによってメッセージの編集でロールを追加するということができない

リアクションされた時の処理が汚い

初めてV13を触ったので変なところがあると思います指摘してくれるとありがたいです

製作期間1日

Operation job.findOne() buffering timed out after 10000ms
というエラーはMONGOに

元記事を表示

herokuにnode.jsとprismaで環境作成

#アジェンダ
 表題通り、heroku環境にnodejs+postgressの環境作成。
 環境作成時に、prismaでTBLのマイグレーションを実施する。

#1. アプリサーバの作成

“`javascript:heroku環境作成
~/develop/postgress $ mkdir heroku
~/develop/postgress $ cd heroku
~/develop/postgress/heroku $ curl https://codeload.github.com/prisma/prisma-examples/tar.gz/latest | tar -xz –strip=3 prisma-examples-latest/deployment-platforms/heroku
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent

元記事を表示

Discord.js v12で役職パネルを作成する

#初めに
**バグがあったら至急BURI#9515に連絡!!**
今回はDiscord.jsv12を使って役職パネルを作ってみることにした
作るにあたって結構問題にぶつかった

foreachで配列の数だけ回そうとしたら非同期ではなかった
解決策
Promise.allを使った

mongodbに保存するときKeyがかぶって思い通りに動かない
解決策
メッセージID+カウントで回避するようにした

cacheされていないリアクションはイベントが発火しない
解決策
partialsを使った

解決しきれなかった問題
ロールが存在しなかった場合の処理がメッセージを消すという結構無理やりな感じになってしまった
誰かいい方法教えてください,,,
これによってメッセージの編集でロールを追加するということができない

リアクションされた時の処理が汚い

製作期間1日

Operation job.findOne() buffering timed out after 10000ms
というエラーはMONGOに関するエラーです

#必要なもの
discord.js@12
aurora-mong

元記事を表示

nodejs でArrayに入っているコマンドを map, exec で非同期処理し、結果をまとめる

**@kenmaro**です。
普段は主に**秘密計算、準同型暗号などの記事について投稿しています**。
秘密計算に関連するまとめの記事に関しては以下をご覧ください。

> – [秘密計算エンジニアを始めて1年が経った。](https://qiita.com/kenmaro/items/416657efca2ff296169b)
– [秘密計算エンジニアを始めて2年半が経った。](https://qiita.com/kenmaro/items/48059dd60f79e80f5ef8)

## 概要
今回は秘密計算等の記事ではなく、開発時の備忘録となります。

少し前になりますが、
これができなくてげきハマりしたので、誰かの役に立つのではないかと思い、備忘録化しておきます。

## やりたかったこと
nodejs で express サーバを用い、以下のような処理をするAPIを作っていました。

1. クライアントからリクエストを取得する
2. azure へとサブプロセスでbashコマンドを用い、container instance のステータスを取得する(クラスターは複数)
3

元記事を表示

初心者がNode.js(Express)でYouTubeの動画をダウンロードできる機能をつくる。

この記事は、【 [可茂IT塾 Advent Calendar 2021](https://qiita.com/advent-calendar/2021/kamo-it) 】の4日目の記事です。

# 初めに
Node.jsも記事書くのも初心者なので、もしかしたらコードや説明の間違いや、記事が読みにくいかもしれませんが、お許しください・・・
また、こちらは全て自分の動画で試しております。
## つくるもの
フロント(ブラウザ)側:URLを入力
バックエンド(サーバー)側:それに応じた動画をmp4でダウンロードして送り返す

## 流れ
1. サーバーでHelloWorldがでるところまでつくる。
1. URLをおくるためのページを用意する。
1. URLを受け取って、その動画をダウンロードする

## 環境
どれも新しいversionでいいと思います。

$ npm -v
6.14.11

$ node -v
v14.16.0

## 作業開始

任意(今回はデスクトップ)の場所に作業していくフォルダを作りましょう。

そのフォルダをVSCodeで開きます。
さて、まずは初期化設定

元記事を表示

【実用編】指定した個数と面数のダイスを振る

## 前書き
前々から、TRPGに少し興味があり、ダイス機能を作ってみたいと思ったので作ってみたいと思います。

## どのようなものか
コマンドで、何回振るか、そのダイスは何面あるか。を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1940116/0a2a6c32-55b1-9705-c423-64ab6db6d20e.png)
上記は**6面**のダイスを**4回**振った時の例です。

## どういう感じなのか(概要)
どういう動作をするのかの概要を説明します。

1. ユーザーから2つの引数を受け取る(回数・ダイスの面数)
1. Discordの最大文字数は2000なので、上の引数が大きすぎたら無視する(任意で大丈夫です)
1. それぞれのダイスの目の合計数とそれぞれの目のリストの変数を初期化しておく
1. 「1」で受け取った回数の引数分繰り返し処理をする
1. 繰り返し処理の中に「1」で受け取ったダイスの面数の中を乱数で出す
1. その目をリストに追加しながら、足

元記事を表示

LINE BOTとIFTTT(Fitbit)でなんちゃってピクミンブルームを作ってみた

この記事は、[プロとアウトスタジオ](https://protoout.studio/)の[アドベントカレンダー2021](https://qiita.com/advent-calendar/2021/protoout)の4日目です!

## はじめに

前回の記事(https://qiita.com/tkyko13/items/bdfee3416792737fd48d)のようにLINE BOTとIFTTTを組み合わせて最新作のPikmin Bloomのようなものを作ってみました

IFTTTにfitbitがあったのでそれを利用し、一日の終わりにその日歩いた歩数と、それにあった苗を一つだけもらえて、引っこ抜けるサービスです

位置情報とかは関係なく、歩数です

[![Image from Gyazo](https://i.gyazo.com/3d0614c109c581d3751b922e0e413977.gif)](https://gyazo.com/3d0614c109c581d3751b922e0e413977)

こんな感じに、一日の終わりにまず苗が通知され、引っこ抜くボタンを

元記事を表示

OTHERカテゴリの最新記事