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

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

Node.jsでimport・export(ES6の構文)を使えるようにwebpack × Babelの設定をやってみた

## 以下の記事を参照して頂ければと思います

https://note.com/shift_tech/n/n77562e0926e3

**※Qiitaの記事は全て個人的な記載であり、所属する組織団体とは無関係です**

## 補足
### 設定全体は以下を参照

https://github.com/yuta-katayama-23/node-express/tree/d3224ed684d0a96894fd112b049d4ca8db9ef776

### おまけ
今回、Node.jsでimport・export(ES6の構文)を使えるようにする方法を見てきたが、上記のように`import ‘core-js/stable’;`, `import ‘regenerator-runtime/runtime’;`と書かないでも動く場合もあり混乱した。ちょっとどのパターンならbuildして動くのか?を調査してみたので以下にまとめてみた。

**※注意
 今回検証に使ったコードだから動いただけの可能性もあり、この辺りはまだ理解が完全ではないため参考情報程度に見て頂ければと思います**

元記事を表示

Firebase Cloud Functions(Node.js)でnodemailerを使ってgmailを送信する

# TL;DR

Firebaseの環境及びCloud Functionsの環境は出来上がっている前提です。
Cloud Functionsとnodemailerとgmailを使って、メール送信を行いたい場合を想定しています。
前半ではCloud Functionsにおいてのgmailの送信を行うための設定を解説しますが、
後半のほうはCloud Functionsに限った話ではなく、Node.jsでの送信の際にも参考にできると思います。

# 何はともあれnpm install

nodemailerとcorsが必要になるので、npm installしていきます。

“`npm
npm install nodemailer
npm install cors
“`

# Firebaseの環境変数にメールアカウント情報をセットする

gmailはメール送信時にSMTP over SSLで送信するので、
SMTPサーバーへのログイン情報が必要となります。
そんな情報をハードコードするわけにはいかないので、環境変数に持たせます。

“`
firebase functions:conf

元記事を表示

RPGツクールMVの任意スクリプト実行の準備を自動化してみた

以前、[RPGツクールMVで使える自作スクリプト集](https://qiita.com/qwe001/items/e3903f342b0a4582af76)を公開しましたが、
イチイチ各ゲームのHTMLファイルを編集するのは面倒だなと思って、
node.jsを用いてHTML編集を自動化しました。

さらに、nodeコマンドを毎回入力することさえも面倒なので
バッチファイルで簡単に自作スクリプトを差し込めるようにしました。

## 使用に必要なもの

node.js と cheerio が必要です。

cheerioはバッチファイル内でローカルインストールしますが、
何かうまくいかなかったらグローバルインストールしてみてください。

“`bash
npm install -g cheerio
“`

(windows環境でグローバルライブラリを読み込む方法がよくわからなかったのでローカルインストールしてます)

## 動作確認環境

* Windows 10 Home Edition
* node.js 12.14.0
* npm 6.13.4
* cheerio 1.0.0-r

元記事を表示

GitHubまたはGiteaからHerokuにデプロイする手順

お手軽にWebサーバを立ち上げられるHerokuですが、いつもアップロードしているGitHubから立ち上げる手順や、ローカルネットワークに立ち上げているGiteaから立ち上げる手順をまとめておきます。
というより、備忘録です。すぐ忘れるので。

ローカルネットワークに立ち上げたGit(Gitea)で日ごろは構成管理をして、Qiitaに投稿するときにGitHubに複製してソースを公開し、必要に応じてサンプル動作のためにherokuにデプロイしてアプリ公開する、といった活動を想定して説明していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261826/3799cd73-4e86-9c18-e877-d2c78b4e8a0d.png)

あるいは、有志の方のGitHubをカスタマイズする場合は以下の順番になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261826/0a6

元記事を表示

C#のバイナンスの仮想通貨のライブラリを使ってみる

###前回のおさらい
前回、[Node.jsのバイナンスのAPIとC#を連携](https://qiita.com/iota_11/items/24ab2db7f2ee758f715c)して取得したが、1秒単位で情報を取得していくとなるとレスポンスが遅く機能的に難しい、システム構成や環境も複雑で煩雑で開発や保守に時間がかかる。他のPCに持って行った時に設定しづらい。アプリをバイナリ一つにコンパクトにまとめて、他のPCに持っていった時に簡単に利用できるのが望ましい。
###C#のバイナンスのライブラリを使用する

C#のバイナンスのライブラリがあったので使用することにした。

https://github.com/JKorf/Binance.Net

NugetからBinance.Netで取得できます。

“`
Install-Package Binance.Net
“`

“`csharp
using System;
using System.Threading.Tasks;
using Binance.Net;
using Binance.Net.Objects;
using

元記事を表示

[JavaScript] 正規表現とsplitを使って特定の文字列を置換する

ある文字列から、特定の文字列を除いて新たな文字列を作成するために
正規表現を使ったので、覚えておくために記事にしました。
同じようなことを実装するときに、この記事が少しでもお役に立てれば幸いです。

## 文字列を分割する
ある特定の文字の後ろで文字列を分割します。

“`javascript
const str =’ラジオ体操第一’
const regex = /(?<=体操)/; const words = str.split(regex); // [ 'ラジオ体操', '第一' ] ``` あとは配列の要素を置換するか、削除することで、目的の文字列を得ることができます。 配列の操作は、置換や削除、追加といろいろ使える`splice`を使いました。 最後に配列の要素をつなげて文字列にする`join`を使います。 ```javascript words.splice(1,1) console.log(words.join()) // 'ラジオ体操' ``` 文字列の置換を行う場合、`replace`を使う方法もありますが、 大量の文字列を扱い

元記事を表示

StripeのWebhook処理にAzure Functionsを使ってみる

## はじめに

最近、StripeのWebhookをAzure Functionsで設置する機会がありましたので、その時の手順をまとめたいと思います。

いつもはExpressでAPIサーバーを立てたり、AWS Lambda + API Gateway で処理したりしていたのですが、**Azure Functionsがとても便利**だったのでご紹介をかねて記事にしました。

## 開発環境

必要なものは以下の通りです。CLIはそれぞれ最新バージョンを使用して下さい。

– Node.js (v14.17.0)
– Stripe CLI
– Azure CLI
– Azure Functions Core Tools(Azure Functionsをローカルで実行するために使います)

## ローカルで関数アプリを作成する

#### 1. プロジェクトをダウンロードする

Node.js用のひな形が私のGitHubに入ってますのでそちらをご活用下さい。
**[プロジェクトをダウンロード](https://github.com/kota-imai/stripe-webhook-

元記事を表示

ElectronアプリをURLから起動する

Electronアプリをブラウザ上のURLから開き、URLに含まれた情報をレンダラープロセスで利用できるようにする実装方法をまとめます。(mac, windows用)

特にwindows用の実装の情報が少なく、苦戦したので、同じような状況の方の参考になりましたら幸いです。

# 環境

– electron v16(v12でも動作しました)
– electron-builder v22

# サンプルリポジトリ

https://github.com/K-kind/electron-custom-url-sample

# 完成イメージ

![キャプチャ.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/504515/8632eded-34d6-67da-4965-0b8e67b98e18.gif)

– `custom-url://` のようなURLからアプリを起動し、画面にそのURLを表示することができる
– アプリが既に起動している場合、していない場合も同じように動作する

# 実装ステップ
##

元記事を表示

【Node.js】Expressとmulterを使って画像アップロードを実装する(multer, formData, axios)

#はじめに
メインはフロントですが、趣味でExpressを触っている者です。フロント側で画像アップロードを行う際はFileAPIを使ってDataUrlを作ってからサーバーに送る。という流れになると思うのですが、Expressで実装するとなるといろいろ前提が違ってハマったのでメモします。

#実装したコード

“`javascript
// 画像アップロード

app.post(
‘/photo/upload’,
// 解説①↓ ==========
upload.any(),
// 解説①↑ ==========
async (req: any, res: express.Response) => {
// 解説②↓ ==========
const customeId = 1
const formData = new FormData()
const file = req.files[0]
formData.append(‘files[]’, file.buffer, file.originalname)
for

元記事を表示

【Socket.IO】PC50台を無線でつなげてアートを作ってみた

この記事は [福島高専 Advent Calendar 2021](https://qiita.com/advent-calendar/2021/nitfc) 25日目(最終日)の記事です。

# 1. はじめに
こんにちは、高専4年のAkkunlabです。主にプログラミングや電子工作などをしています。

[去年のAdvent Calendar](https://qiita.com/advent-calendar/2020/nitfc)では「[ちょっとすごいと思わせるデジタルアートを作ってみた](https://qiita.com/Akkunlab/items/581f17a90f35b1879adb)」というタイトルで、**インタラクティブなLEDアート**について記事を書きました。

今回はその進化版として**50台のPCを使用したデジタルアート**を制作したので、記事にしていきたいと思います。
読みにくいところがあるかもしれませんが、最後まで読んでいただけたら幸いです。

# 目次
[1. はじめに](#1-はじめに)
[2. 制作したアート](#2-制作したアート)
[3. シ

元記事を表示

子どもの夜ふかし対策に照明が点いてたら消し続けるIoT装置を作った

# はじめに

私は保育園児のふたりの子どもがいるのですが、子どもたちの夜ふかしに日々悩まされていました。
21時~22時ぐらいに寝かしつけに入りはするのですが親が先に寝落ちしてしまい、子どもが寝室の照明をつけて夜中まで延々と遊び続けるという状況です。

せめて真っ暗闇なら親が寝落ちしたあともそこまで夜ふかししないだろうと思い寝室のブレーカーを落とすということも考えましたが、なぜかサーバールーム(クローゼット上部のルータが設置されている小さいスペース)とブレーカーが共用されており、このブレーカーを落とすと家中のネットワークが停止して夜間ジョブ(NASへのバックアップ等)に支障をきたしてしまうため断念しました。

そこで次の手段として考えたのが照明を消し続けるIoT装置の自作です。

# 仕様

以下のように仕様を考えました。

* 部屋の明るさを計測して照明が点いているかを判定
* 照明が点いていたら照明オフの赤外線信号を送信し続ける
* 上記の動作をデバイスのボタンを押してから1時間実行し続ける

図にすると以下のようなイメージです。
![image](https://user-

元記事を表示

discord.pyが開発終了したのでdiscord.jsに乗り換える

# discord.pyの開発終了
皆さんご存知かと思いますが、discord.pyの開発終了がアナウンスされました。[the_future_of_dpy.md – GitHub](https://gist.github.com/Rapptz/4a2f62751b9600a31a0d3c78100287f1)
開発終了したソフトウェアを使い続けることは、リスクの面から見ても良くありません。
当初の予定では同じPython製のAPIラッパーである[Pycord](https://github.com/Pycord-Development/pycord)を利用してdiscord.pyからのリファクタリングを行う予定でした。
ですが、embedを使いたかった[^1]上に、スラッシュコマンドの実装が容易であり、人口が多く、ちょうど.jsを始めたところだったので勉強がてらdiscord.jsへのリファクタリング作業を行いました。

[^1]: discord.pyやpycordでも利用可能だが、discord.jsのほうがより柔軟だったので移行しました。

# Bot詳細
AWS CLIというA

元記事を表示

【Docker+Nuxt】Cannot find module ‘nuxt_plugin_plugin_*’エラーが発生して画面が立ち上がらない

###発生したエラー

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668402/1396f66e-c094-ea1c-913a-3c86ad7151fe.png)

.nuxt/index.jsでインポートしているモジュールが見つからないっていうエラーのようですね。

###解決
####.nuxtフォルダとnode_modulesフォルダを削除してyarn installを実行

そもそもnode_modulesからdockerビルドの際に.nuxtフォルダにコピーしているっぽいが、どうもそこでモジュールの名前が変わるらしい。

####node_modulesは消していいの?
はい。
package.jsonを消さなければ、yarn installで再度作られます。

####.nuxtは消していいの?
はい。

`docker compose up –build`
をすると`nuxt`コマンドも実行され、そのときに.nuxtがnode_modulesからビルドされるようです。

元記事を表示

SwitchBotをLineボットで操作しよう

SwitchBotは、お手軽に入手できるスマートホームデバイスです。
購入してすぐに、AlexaスマートホームやGoogleアシスタントで使えるのは非常にうれしいです。
今回は、LINEアプリからも操作できるようにします。

LINEボットを作成して、LINEアプリから友達登録することで、お友達にチャットする感覚で、操作することができるようにします。
一方で、SwitchBotは、WebAPIを公開していただいていますので、それを利用します。
詳細は以下に記載されています。

OpenWonderLabs/SwitchBotAPI

https://github.com/OpenWonderLabs/SwitchBotAPI

LINEボットを立ち上げるため、サーバを立ち上げる必要がありますが、Node.jsサーバを利用します。
ソースコードもろもろは、GitHubに上げてあります。
poruruba/SwitchBot_SmartHome

https://github.com/poruruba/SwitchBot_SmartHome

#SwitchBotをセットアップする

以降

元記事を表示

Node.jsからMySQLに接続する時に起きるエラーの対処法

# 参考

https://github.com/linnovate/mean/issues/1066

https://stackoverflow.com/questions/50093144/mysql-8-0-client-does-not-support-authentication-protocol-requested-by-server

# エラー

MySQL 8.0 に接続するとエラーが起きる

“`
[nodemon] app crashed – waiting for file changes before starting…
“`

“`
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
“`

# 解決

“`
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native

元記事を表示

【Mac】Node.js と【Windows】SQL serverを接続し、SQLserverのデータ(画像)を抽出する方法

# 目的
windows8.1内のSQLserver2005から画像データ(バイナリ)を抽出し、画像に変換し、変換した画像はMac側に保存する。

# やったこと
windows内で諸々の作業ができればよかったのですが、windows環境ではネットも繋がっておらず、色々と作業しにくいこともあり、プライベートネットワークを介して、mac内のnode環境から抽出することにした。

# 大まかな手順
1. windowsマシンを(LANケーブル等で)プライベートネットワークに接続

コマンドプロンプトで`IPCONFIG`コマンドを叩いて、IPアドレスを確認。

2. macとwindowsマシンを接続確認

取得したIPアドレスに対し、ターミナルで`$ ping IPアドレス`コマンドを叩いて、接続を確認。

3. mac上でNodeアプリを作る
SQLserverのドライバ「**Tedious**」をインストール。DB設定情報をセット。

4. nodeアプリから、SQLを叩いて、データ抽出。バイナリを画像に変換して保存。

#

元記事を表示

Electronで作ったアプリを配布しよう

Working

元記事を表示

Macへのnpm、npxのインストール

AWS AmplifyでWebアプリケーションを構築するチュートリアルを進めようとしたところ、npxが必要になったのでインストール方法をメモしておきます。

https://aws.amazon.com/jp/getting-started/hands-on/build-react-app-amplify-graphql/?e=gs2020&p=frontend

#手順
##パッケージマネージャの更新
Macのパッケージマネージャを更新します。

“`
$ brew update
“`

##nodebrewをインストール
nodeのバージョンを管理するnodebrewをインストールします。
“`
$ brew install nodebrew
“`

##node.jsのインストール
node.jsインストール用のフォルダを用意した後、インストールを行ってから使用するバージョンを指定します。

“`
$ mkdir -p ~/.nodebrew/src
$ nodebrew install-binary latest
$ nodebrew list
$ nodebrew

元記事を表示

アレクサを好きなようにしゃべらせる(Webインターフェイス編)

ひとりアドベントカレンダー24日目
途中で詰まってしまったので抜けたところは飛ばします。
と言いつつ24日目にも間に合っていませんが。

# はじめに

 コマンドラインでアレクサをしゃべらせられるようになったので、Webインターフェイスを作ります。
 ローカルで動けばいいのでRaspberryPi上でExpressでWeb APIとスマホ等から操作するためのページを一つ作ります。

# 環境

– RaspberryPi
– Raspbian GNU/Linux 10 (stretch)

“` bash
$ node –version
v12.22.3
$ npm –version
6.14.13
“`

ところで、Raspberry Pi の初代はArmv6搭載のため新しいnodejsがパッケージで提供されていないため、以下のページの手順に従いUnofficialビルドをインストールしてあります。

https://qiita.com/homelan/items/4b61715bec5e805bf15d

使用したUnofficialイメージは[ここ](https://u

元記事を表示

JavaScriptでjsonの中身を確認したら[object Object]と表示された場合の対処法

## はじめに
最近、API開発をしていて外部API時のエラーオブジェクトの構造を知りたい時がありました。
しかし、対象オブジェクトをログ出力しても[object Object]と表示されてしまいます。
そこで、オブジェクトの中身を表示する方法を調べたので紹介します。

## 方法1 : JSON.stringifyを使う
以下のようにJSON.stringifyを使う方法です。

“`
console.log(JSON.stringify(object))
“`

他の記事でもよく見かけます。
確かにこれでオブジェクトの中身が表示されるのですが、正直みづらいです。
そこで、次の方法が個人的におすすめです。

## 方法2 : console.dirを使う
以下のようにオブジェクトをconsole.dirで出力すると、良い感じに見やすく表示されます。

“`
console.dir(object)
“`

元記事を表示

OTHERカテゴリの最新記事