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

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

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リ

元記事を表示

【備忘録】npm run startで missing scriptエラーが出た場合の対処法

npm run startの結果下記エラー発生。
どうやらstartのコマンドがpackage.jsonに記載がないことが原因らしいため、色々調べてみた。

# エラー文

“`
1 error generated.
make: *** [Release/obj.target/binding/src/binding.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/Users/●●/project/●●_web_server/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack at ChildProcess.emit (node:events:394:28)
gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/ch

元記事を表示

LINE BotのNode.js SDKでプロフィール取得のメモ #linedc

userIdからプロフィールを取得したいってのをちょくちょく使うけど忘れるのでメモ

> [SDKのサンプルコード](https://github.com/line/line-bot-sdk-nodejs/blob/next/examples/kitchensink/index.js#L118-L130)

`client.getProfile()`を利用します。

“`js
const profile = await client.getProfile(event.source.userId);
console.log(profile);
“`

“`js
{
userId: ‘Ubxxxxxxxxxxxxxxxxxxxxxx’,
displayName: ‘n0bisuke’,
pictureUrl: ‘https://profile.line-scdn.net/ch/v2/p/xxxxxxxxxxxxxxxxxxxxxxxx/exist’,
statusMessage: ‘こんにちは’,
language: ‘ja’
}
“`

## コピペ用: リ

元記事を表示

Node.js で標準入力から同期的に一行読み取る

# 前座:既存の手法(非同期 or 入力全行)

主に競技プログラミングなどのシーンで標準入力からデータが受け渡されることは多いです。競技でなくとも、同様の形式でコーディングテストが行われることもあります。

こういったときに Node.js だと少し煩雑な手順を取る必要があります。

## `readline`

https://nodejs.org/api/readline.html#readline_readline_createinterface_options

“`js
const rl = require(“readline”).createInterface({
input: process.stdin,
output: process.stdout,
});

const lines = [];

rl.on(“line”, (line) => {
lines.push(line);
// … 多分入力処理
});

rl.on(“close”, () => {
// 入力が閉じたのでデータは受け取った
// データを全て受け取った前提の

元記事を表示

OTHERカテゴリの最新記事