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

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

Guildシステムの設計

#初めに
 この記事は何かプログラミングについて有用なことを書いてありません。というか誰かにとって有用なものではなくて、僕がGuildについて思考を、もしくは設計をまとめたいから書くだけのものです。
 お気をつけくださいな。

 今回紹介するwebサイトはまだまだ開発段階なので、時々アクセス出来ないでしょうし、エラーコードがまんま出てくることもあると思います。

https://guild.click/message
#概要
 Guildシステムは僕が暇つぶし感覚で開発しているwebサイトです。言語はnode.js、使用しているデータベースはMongoDB。
 それぞれのバージョン(現在2021/8/28)
・node.js  v15.11.0
・mongodb 4.4.6

 初めは依頼掲示板と銘打ってシステムを組もうと思っていたところ、しかしオンラインでの取引は何が不安かと考えると、相手の信用度と理解度が不安なんだと考えて、そこを補完したシステムを考えました。
 それがGuildシステムです。

 Guildシステムの根幹を成す機能は以下の通り。
・Level機能
・Stamina

元記事を表示

GrayBot-Voiceの環境を構築する方法

#はじめに

こんにちは。WhitePaper所属デベロッパのたぽと申します。
WhitePaperより先日発表された、GrayBot Projectのひとつ、Discord通話読み上げサービスの環境構築方法を詳しく解説します。
読み上げる方法は2つあります。自分にあった方法を使ってみてください。
①自分でプログラムを動かして、自分でオリジナルのボットを作る。
②用意されたボットをサーバーに導入する
#自分でプログラムを動かす方法
本項目は以下の条件を満たしている前提で執筆します。
1.Node.js(v14.15.0動作確認済み)がインストールされていて、動作させることができる環境がある
2.コマンドプロンプト・シェルをある程度使える
##ダウンロード
[GitHub](https://github.com/WhitePaper-Network/GreyBot-Voice)からプログラムをZipでダウンロードして、解凍して任意の場所に移動する
![スクリーンショット 2021-08-30 122019.jpg](https://qiita-image-store.s3.ap-nort

元記事を表示

imageminでディレクトリ構成を維持する方法

## 問題
画像を圧縮する際に便利な[imagemin](https://www.npmjs.com/package/imagemin) ですが、吐き出した際にディレクトリ構成を無視してしまうという問題があります。

例えば、

“`
img
├─pc
│ └─pc1.png
└─sp
└─sp1.png
“`

というディレクトリ構成でimgフォルダを指定すると、出力は

“`
pc1.png
sp1.png
“`

となってしまいます。
消えたpcフォルダとspフォルダ…

issueにも上がっていますね。
https://github.com/imagemin/imagemin/issues/191

issueを読む限り内部修正がもうすぐマージされそうな気配なので、
それまでのつなぎとしての処置を考えます。

## 解決方法
ディレクトリを精査して、再帰的にimageminをかけていきます。
(上記issueの@brothatruさんのコードを元に一部調整しています。)

“`javascript
const imagemin = require(‘

元記事を表示

Node.js: 一定時間毎に udp 送信を行う

こちらにある udpclient.js を改造しました。
[Telegraf の入力データフォーマットを JSON にする](https://qiita.com/ekzemplaro/items/780090ca15cfdebc5f1d)

“`js:udp_plural.js
#! /usr/bin/node
// —————————————————————
//
// udp_plural.js
//
// Aug/30/2021
// —————————————————————
‘use strict’

// UDP 接続先
const host = “localhost”
const c_port = 8092
var dgram = require(“dgram”)
var client = dgram.createSocket(“udp4”)

// ———————-

元記事を表示

docker nodejs を利用時にnode_modulesが作成されなくなった

## Description

gatsbyやangularでdockerを利用する際に、OSによりinstall内容が変わるmoduleがあり、手元のnode_modulesをそのままdocker環境で利用した場合にErrorを吐く場合があった。
dockerとlocalの環境で別にinstallしようと思い、docker-ignoreに追加 + docker内部でインストールを実施した際にエラーがでたため対処方法を追記。

#### Refs

関係ありそうだけどさっとしか見なかった。ごめんなさい。

– [yarnpkg/yarn#5500](https://github.com/yarnpkg/yarn/issues/5500)
– [yarnpkg/yarn#2240](https://github.com/yarnpkg/yarn/issues/2240)

## TL;DR

volumesにnode_modulesに追記する。

“`docker-compose.yml
services:
app:
volumes:
– type: vol

元記事を表示

Telegraf の入力データフォーマットを JSON にする

こちらのプログラムの Telegraf の入力フォーマットを JSON に変更しました。プロトコルは udp のままです。
[Telegraf で InfluxDB 2.0 にデータを入れる](https://qiita.com/ekzemplaro/items/1156e8371aea84604d13)

Telegraf の設定ファイル

“`text:/etc/telegraf/telegraf.conf
(省略)
[[outputs.influxdb_v2]]
urls = [“http://127.0.0.1:8086”]
token = “1zIYs1taCm3pWQOBUNk0ssYccOF7YgJcdGyJDbiFYTBf7hcPvyl5nGyt71rNVkYtg2rB
ceUwQ1r5Xzm7Mabcde==”
organization = “ekzemplaro”
bucket = “tochigi”
(省略)
[[inputs.socket_listener]]
service_address = “udp://:8092”
json_name_key = “n

元記事を表示

command not found:nodeエラーが表示されたときの解決方法

#エラーケース
ターミナルでnodeのバージョン確認をするコマンド「node –version」を実行したら、「command not found:node」というエラーが返ってきてしまう。”node”というコマンドが認識されていないみたい。

#解決方法
「node」をインストールすればOK
https://nodejs.org/ja/download/

npmも同様にインストールすればコマンドとして認識されるようになる。

元記事を表示

SORACOM RS-LTECO2 で計測したCO2値を kintone で確認する

![CO2-10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75892/0a44d023-f1c4-5140-c338-5305188308f9.png)

## 概要
ちょっと前に SORACOM RS-LTECO2 を購入して、以下を参考に自宅の仕事場のCO2濃度や室温などのデータを SORACOM Lagoon で可視化までやっていました。

**SORACOM レシピ:IoTで、CO2と温湿度を計測し換気促進**
https://soracom.jp/recipes_index/9972/
![CO2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75892/f9293439-3c2b-8e6c-b26b-b0d94741ce3e.png)
とはいえ、確認のため SORACOM Lagoon をいちいち起動するのは手間で、普段使いしている kintone で CO2濃度や室温などのデータを確認できるように可視

元記事を表示

eslint において、 while(1)で警告が出るのを.eslintrc.json の設定で回避する方法

## 動作環境
“`
$ node -v
v15.14.0
$ npm -v
7.7.6
$ npm list –depth=0
eslint@7.32.0
“`

# 目的
– eslint を使っていて、 `while(1)`を書くだけでeslintの警告が出るのをなんとかしたい。

## コードを変えて警告を回避する方法
– .eslintrc.json 設定を変更しない場合は、以下のように変更して回避する

“`
[NG] while (1) {}
[OK] for (;;) {}
“`

## .eslintrc.jsonを設定して回避する方法
– .eslintrc.json 設定を変更して回避する場合は、以下のように指定する。

“`
“rules”: {
“no-constant-condition”: 0
}
“`

元記事を表示

ニコニコ動画風コメント+アンケートアプリをnode.jsとElectronで作ってみた

# はじめに
– 作成の動機はプレゼンやセミナーがWeb会議にシフトし、会場の空気感を感じない、発表時一人で話してる気がすることから、インタラクティブにしたいと思ったことです。
– この手のアプリでは[CommentScreen](https://commentscreen.com/)があるけど、無料版だと人数やアンケート回数の制限があったり、有料版の社内利用は決裁取得やらが面倒。
– ネットで探してみると似たようなものを開発されてる記事があったので自分なりにカスタマイズして開発してみました。
– Javascriptやnode.jsを扱うのは初めてでしたが、部署内のプレゼンや会議を盛り上げるツールができました。
– 本アプリの作成、記事執筆にあたり非常に参考にさせていただきました。ありがとうございます。[heroku + electron でニコニコメソッドを作ってみました。その2(ルーム分け機能追加)](https://qiita.com/UC-SADA/items/39c43a1b196391a3e9e7)
– 本記事ではアプリの紹介と利用方法を説明します。後日に別の記事で実装し

元記事を表示

Vagrant環境でnpm installができない時に試すべきこと

#目次
– はじめに
– 開発環境
– 前提
– 生じた問題
– 対応策
– まとめ
– 参考記事

#はじめに
この記事では、Vagrantを用いてnpm installを行おうとしたときに生じたエラーについて扱います。
私の開発環境は以下の通りですので、ホストOSがwindows環境の方などは注意してください。
なお、Laravelでの開発を行なっていますが、npmを用いてパッケージ管理をする場合、対処法は共通だと思われます。

##開発環境
ハードウェア

| 項目 | 内容 |
|:-:|:-:|
| OS | mac OS Big Sur 11.5 |
| 端末種類 | MacBook Air (Retina, 13-inch, 2020) |
| プロセッサ | 1.1 GHz クアッドコアIntel Core i5 |
| メモリ | 16 GB 3733 MHz LPDDR4X |
| グラフィックス |Intel Iris Plus Graphics 1536 MB |

ソフトウェア

| 項目 | ホストOSバージョン | ゲストO

元記事を表示

VSCode リモートコンテナの Python3.8 にnvm , nodeのインストールをDockerファイルに記述する

リモートコンテナ用のdockerイメージ(Debian11, Python3.8)の環境でnodeを使いたかったので入れた
いろんなOSさわると、遭遇するエラーもさまざま

– 入れた対象OS

“`
root ➜ /workspaces $ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 11 (bullseye)
Release: 11
Codename: bullseye
“`

## Dockerファイルに記載してnvmとnodeをインストール(Rebuild Containerで実行して1分かからず)
– 操作しているユーザー環境変数の設定はしていない
– `apt upgrade` はしなくても良い
– node install ではビルドしない(-s 指定しない)
– install.sh が実行されると、`/usr/local/share/nvm` に nvmが入っていることを気づかずにや

元記事を表示

複数のM5CameraでWigglegramカメラを作ってみた part1

## こちらの記事を見て自分も作ってみたいと思いました!

https://elchika.com/article/1692f70c-a942-4158-8445-d985fb74739d/

Wigglegramカメラという用語が初耳で面白そう

## 調査

* http://www.jtt.ne.jp/products/original/3dcamera/
* 以前自分が作ったVRカメラと呼称したカメラと同じようなことしている
* 2枚の画像だがその差分がすごくスムーズ
* https://akiba-pc.watch.impress.co.jp/docs/news/news/1094171.html
* 3万くらいしてる
* M5Camera二個だと4000円しないくらいですが…

[![Image from Gyazo](https://i.gyazo.com/4982454326012e39c9624180de670841.gif)](https://gyazo.com/4982454326012e39c9624180

元記事を表示

yamlからjsonに変換してfor文で利用する(node.js)

# 目的
– yamlファイルを読み込んで、for文で処理するようなサンプルコードを作りたい。
– Web上に自分の理想とするデータとコードのサンプルがなかったので、備忘的なサンプルコードを作りたい。

# 参考ページ
– [忘れやすい、複雑なJSONの要素をfor…in文で取り出す方法](https://www.weed.nagoya/entry/2016/05/11/105145)
– 参考にはなりますが、自分の理想はネストがされていないjsonパターンを知りたいので、この記事を書きました。

# 動作環境

“`
$ node -v
v15.14.0
“`

# サンプルデータ
– データとしては以下のような内容を扱います。
– 単純な2次元配列です。

| id | name | score |
| :– | :—— | :—– |
| 001 | 織田信長 | 100 |
| 002 | 豊臣秀吉 | 90 |
| 002 | 徳川家康 | 80 |

# jsonデータをfor文で表示する
– 上記のExcelのデータをjso

元記事を表示

CentOS 7 で Node.js(バイナリアーカイブ)を使えるようにする方法

# 環境
– Windows10 + Virtual Box + CentOS 7
– VScode + Remote-SSH

# ソース入手
下記のページからダウンロードする。今回は、Linux Binaries (x64) を選択。
[nodejs download page](https://nodejs.org/ja/download)
ダウンロードした node-v14.17.5-linux-x64.tar.xz を /root に移動
# 解凍と配置
# tar -xJvf node-v14.17.5-linux-x64.tar.xz -C /usr/local/lib/
# cd /usr/local/lib/
# ln -s node-v14.17.5-linux-x64/ nodejs
# パスを通す
/etc/profile を編集してもよさそうだが、記述が煩雑になりそうだったので .bash_profile を編集することにする。

# vi ~/.bash_profile

PATH=$PATH:/usr/

元記事を表示

サービス化したNode.jsアプリ自身にアップデート+再起動させる

## やりたいこと

– `winser` を使ってWindowsサービス化したNode.jsアプリケーションをバージョンアップして再起動したい
– プロセスマネージャとかコンテナとかを使わずにアプリケーション自身で上記を行う(トリガは開発者が行う)
– Node.jsのバージョンは12.xを使用

## やったこと

### 準備

更新が必要なファイルをリストアップした設定ファイルを作っておく。

“`json:update.json
{
“files”: [
“package.json”,
“index.js”
]
}
“`

### バージョンアップ

1. [nodegit](https://www.nodegit.org/) を使って、Gitリポジトリにあるソースコードを一時フォルダにクローンする

“`javascript:index.js
const Git = require(‘nodegit’).Clone;
const TEMP_DIR = __dirname + ‘/temp;
await Git.c

元記事を表示

【Node.js】サーバーサイドディレクトリ構成について可能な範囲でクリーンアーキテクチャっぽくしてみた

株式会社Another works CTOの塩原です。
弊社では、現在Node.jsを使ったgRPCサーバーを構築しています。

その中で、現段階でのサーバーサイドアプリケーションのディレクトリ構成を公開したいと思います!

# 環境
– gRPC
– Node.js version 14系
– Typescript

# 主なディレクトリー構成図
弊社ではmonorepoを採用しているので、.protoファイルを別ディレクトリーで管理しています。
層としてはapplication, domain, infraの三層構造となっています。

“`
PROJECT
|- grpc_proto/
|- project_a/
        |- gen/
– XXX_pb.d.ts
– XXX_grpc_pb.js
– XXX_pb.js
|-src/
|- application/
|- controller/
|- converter/
|- grpc/

元記事を表示

【Node.js】HummusJSで既存のPDFへ簡単書き込み

入力フォームのような体裁のPDFってありますよね。
例えば、こんなのです。
![form1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418041/ad1140ca-61e3-f9f1-4374-829ee6253b25.png)
出典:[医療費控除の明細書など — 国税庁ホームページ-明細書・計算明細書等](https://www.nta.go.jp/taxes/shiraberu/shinkoku/yoshiki/02/pdf/ref1.pdf)

直接このフォームに文字列を追記できたらペンを持たなくて済むので便利ですね!
そこで利用するのが**HummusJS**です!

https://github.com/galkahana/HummusJS

## 動作環境

node: v14.17.4
npm: v6.14.14

nodeやnpmの環境がない場合は[インストール](https://nodejs.org/ja/download/)してください。

HummusJSは`v1.0.11

元記事を表示

Laravel-echo-serverでチャットアプリを作ろうとしたらSameSiteの設定で怒られた

# 概要
チャット機能をつけるためにLaravel-echo-server + Redisにてソケット通信を行おうとしたところSameSiteの設定でIssueが出ていた。
無事動いたので備忘録。

チャット機能は以下を参考
[Laravel Broadcasting (Laravel Echo)を試してみる](https://qiita.com/zaburo/items/34289d4573f39113b25a#%E5%AE%9F%E8%A3%85%EF%BC%92event%E3%81%AE%E8%BF%BD%E5%8A%A0privatechannel%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E9%80%9A%E4%BF%A1%E3%81%99%E3%82%8B)

# 環境
Laravel Framework 6.20.32
MAMP 6.4
PHP 7.4.6

# やったこと
* localhostのSSL設定
* laravelのsame_siteの設

元記事を表示

Node.js(axios)からDirectCloud-BOX APIでファイル一覧の取得とnode話

一連の記事の流れになります。

– [紙で申請を出す居酒屋店員のシフト希望と管理業務をちょっとスマートにする](https://qiita.com/n0bisuke/items/0c6d6a236b31e3897d41)
– [Node.js(axios)からDirectCloud-BOX APIでファイルのDL #linedc](https://qiita.com/n0bisuke/items/0aec6dc65a1fc0b4c5b5)
– [Node.js(axios)からDirectCloud-BOX APIでファイルアップロード](https://qiita.com/n0bisuke/items/35659ffdf00f2158da98)

同じような書き方にはなるのですが、DirectCloudのAPIのドキュメントは注意といった記事です。

また、タイトルにあるnodeはNode.jsの話ではないです。

## ファイル一覧取得を試す(GET/POST)

`/openapp/v1/files/index/{node}`でファイルの一覧を照会できます

> [APIリ

元記事を表示

OTHERカテゴリの最新記事