- 1. ライブラリを利用する
- 2. Node.js
- 2.1. nvmのインストール
- 2.2. Node.jsのインストール
- 2.3. コンテナにNode.jsの指定バージョンをインストールする
- 2.4. Raspberry Pi Zero WHでSwitchBotカーテン(BLE)を動かした
- 2.5. Node.js環境構築に関することのメモ
- 2.6. Oktaの認証を使ってみた
- 2.7. 【Node.js】Windows環境におけるCypressのIntegrationフォルダーの場所
- 2.8. 【Node.js,heroku】Twitter星座占いbot仕様改善・機能追加
- 2.9. 【Node.js, heroku】Twitter botで天気予報(画像付き)
- 2.10. 【Node.js, heroku】Googleドライブの操作(データ取得/更新)
- 2.11. blastengineを使ってNode.jsでメールを送信する
- 2.12. ホットペッパーAPIを使用して飲食店名からURL情報を取得してみた
React Nativeのstart時にエラー
npx react-native start
コマンド実行時に下記のようなエラーが出た。failed to construct transformer envelope routines::unsupported
digital envelope routines::initialization error
そのため、npx react-native run-androidを実行すると、Androidの仮想デバイスも赤いエラー画面が出力。
調べたところ、どうやらnode.jsのバージョンがいけないらしい。
自分が使っていたのは最新バージョンの17.3.0
v17でこのエラーが発生するようなので、安定バージョンの16.13.1にダウングレードすることで解決しました。ちなみにnode.jsのダウングレードはWindowsだとコントロールパネルからnodejsをアンインストールして、
node.js公式から16.13.1をダウンロードして、インストーラを走らせるだけ。
お正月休みにGitをインタラクティブに操作できるサブコマンドツール作ってきました
年末からお正月にかけての時間で趣味でツールを作ってみました?
Gitのちょっと面倒な操作をインタラクティブに行えるGitのサブコマンドツール[git-ex](https://github.com/yasukotelin/git-ex-js)を作成してnpmに公開しています。https://github.com/yasukotelin/git-ex-js
https://www.npmjs.com/package/@yasukotelin/git-ex
僕は普段はAndroidエンジニアとしてKotlinを書いていますが、趣味ではVimのカラースキーム作ったり、Goでツール作ったり、Rustに手を出したり、、、など色々しています。今回はJavaScriptのターミナルのライブラリがとても良さそうだったのでnode製のCLIツールを作ってみました?!
このQiita記事では前半にツールの紹介と、後半で実装面を書いてみようと思います。
## ツールの紹介
僕は普段Gitをターミナル上でコマンドで使っているのですが、たまにSourceTreeなどのGUIツールやTIGなどのツール
Dockerで安全にnode.jsウェブアプリをコンテナ化する
Happy New Year!
年末、年始があっという間に終わり、明日は成人の日。
来週からコーディングのオンラインクラスを受けることになった。4−6ヶ月になりそうであるが、無事乗り切れるのか、少々不安も。javascriptを習得するコースなため、最終的にnode.jsのサーバーサイドでのコーディングもできるようになるまでの知識を得られるよう頑張ろう。node.jsの環境構築に不可欠ともいえるdocker。
今回は、[10 best practices to containerize Node.js web applications with Docker](https://snyk.io/blog/10-best-practices-to-containerize-nodejs-web-applications-with-docker/)
の翻訳記事のご紹介です。こんかい翻訳に苦労しmした。読みにくい部分もあると思いますが、どうぞ最後までお付き合いください。
#Dockerでnode.jsウェブアプリケーションをコンテナ化するための10のベストプラクティス
LiranTal
Node.js: MySQL 8.0 で接続エラーが出た時の対策
次のエラーが出た時の対策です。
“`text
code: ‘ER_NOT_SUPPORTED_AUTH_MODE’,
errno: 1251,
sqlMessage: ‘Client does not support authentication protocol requested by server; consider upgrading MySQL client’,
sqlState: ‘08004’,
fatal: true
“`エラーが出るプログラム
“`js:maria_version.js
#! /usr/local/bin/node
// —————————————————————
// maria_version.js
//
// Jan/09/2022
//
// —————————————————————
‘use strict’// ———
Githubにある自作のnpmモジュールをnpm installしてENOENTなエラーが出た時
# はじまり
自分で作ったnpmモジュールをubuntu環境へinstallしようとしたときに以下のエラーが出ました。
“`bash:log
root@ca04e13630cb:/usr/app# npm install git+https://github.com/Landmaster135/FeedFetcher.git
npm ERR! code ENOENT
npm ERR! syscall spawn git
npm ERR! path git
npm ERR! errno -2
npm ERR! enoent An unknown git error occurred
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoentnpm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2022-01-08T17_49_46_172Z-debug-0.
nvm-windowsを使ってnodeをバージョン管理
## 最初に
node v12を使っていましたが、メンテナンスも2022.4月で切れるのでバージョンアップしなければと思いつつ、のびのびにしていました。
qiita投稿に慣れるためにもv16アップデートしてみます。### 環境
os: windous10
node12⇒node16## バージョン管理ツール選択
nodeのバージョン管理ツールはいくつかあるみたいだが、windowsだと選択肢少ないみたい。スター数の多いnvm-windowsにしてみた。
参考
[Node.jsのバージョン管理ツールを改めて選定する【2021年】](https://qiita.com/heppokofrontend/items/5c4cc738c5239f4afe02)
## nvm-windows のインストール
参考
[2020-0711 nvm-windows で Node.js の 環境構築 と バージョン管理 (Windows, nvm) ](https://blog.beachside.dev/entry/2020/07/11/110000)git-hubのhtt
Webの勉強はじめてみた その20 ~Node.js編 ライブラリの使い方~
N予備校「プログラミング入門Webアプリ」コースを受講しています。
今回は第3章4,5節です。ライブラリを利用する
:::note
require: 必要なモジュールだけをメモリに記録する
:::CSVを読み込む
“`javascript
‘use strict’;
//FileSystem Module
const fs = require(‘fs’);
//ReadLine Module
const readline = require(‘readline’);
//ReadStream from CSV
const rs = fs.createReadStream(‘./popu-pref.csv’);
//ReadLine from rs
const rl = readline.createInterface({input:rs, output:{}});
//DataMap key: 都道府県 value: 集計データのオブジェクト
const prefectureDataMap = new Map();
//line Even
ADHD向けnpmパッケージ
エンジニアでADHDだと、作業に集中しすぎて、持病の薬を飲み忘れたり、ミーティングをすっぽかしてしまったり、食事を摂るのを忘れてしまったりする。
そんな人が集中を切るためには、アプリケーションを強制終了させる他ない。
そのためのnpmライブラリがadhd-timerである。
https://github.com/TakutoYoshikai/adhd-timer
“`bash
npm install –save TakutoYoshikai/adhd-timer
“`毎日0:00になると、Google ChromeとFirefoxとターミナルを強制的に終了させ、寝る時間だよ!と表示する例
“`javascript:index.js
const ADHDTimer = require(“adhd-timer”);ADHDTimer([
{
schedule: “0 0 0 * * *”,
callback: function() {
console.log(“寝る時間だよ!”);
}
}
], [
“firefox
npmのCLIパッケージを作成する
初めてnpmのCLIパッケージを作成してみました。
コマンドライン引数の受け取りやプロンプトの表示など、難しそうなイメージだった部分も、ライブラリを使うことで手軽に実装できたので、それらを紹介したいと思います。
# 作成したパッケージ
利用しなくなったプロジェクトの `node_modules` や `dist` フォルダを探して削除するための `clean-node-projects` というパッケージを作成しました。
`npx clean-node-projects` とすることで、そのパスの配下のフォルダが検索され、どれを削除するか選ぶことができます。
![clean-node-projects_demo.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/504515/76d8b414-2348-c662-ea7c-7078d6f5febf.gif)https://github.com/K-kind/clean-node-projects
https://www.npmjs.com/p
Webの勉強はじめてみた その19 ~Node.js編 導入~
N予備校「プログラミング入門Webアプリ」を受講しています。
今回は第3章2,3節です。Node.js
:::note
JavaScript でプログラミングすることのできる、サーバーサイド向けのプラットフォーム
:::nvmのインストール
Node.jsのバージョンを管理するツール
“`bash
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
“``-o-` : このオプション、調べ方が悪いのかいまいち理解できてないです。
`-o` は指定したファイル名に保存というのはわかるんですが。“`bash
source ~/.bashrc
“`再起動せずに`.bashrc`ファイルを読み込ませる
Node.jsのインストール
“`
nvm install v10.14.2
nvm use v10.14.2
“``node –version` : バージョン確認
`node` :
コンテナにNode.jsの指定バージョンをインストールする
nvmを用いてインストールを行います。
nvmを使用すれば、簡単に複数のバージョンをインストールすることができます。“`Dockerfile
ARG NVM_VERSION=17.1.0ENV NVM_DIR /root/.nvm
RUN apt-get install -y \
curlRUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash \
&& . ${NVM_DIR}/nvm.sh \
&& nvm install ${NVM_VERSION} \
&& nvm alias default ${NVM_VERSION} \
&& nvm use default \
&& ln -s ${NVM_DIR}/versions/node/${NVM_VERSION}/bin/node /usr/bin/node \
&& ln -s ${NVM_DIR}/versions/node/${NVM
Raspberry Pi Zero WHでSwitchBotカーテン(BLE)を動かした
# はじめに
Raspberry Piを使ってBLEでSwitchbotカーテンを動かす手順です。よく見るPythonではなく、Node.jsです。
Pythonの環境はZero WH単体では作れなかったので、Node.jsです。# 機器
– Raspberry Pi Zero WH
– SwitchBot Curtain (https://www.switchbot.jp/products/switchbot-curtain)# 構築
以下の公式の手順を参照しながら構築しました。ほとんどそのまんまです。https://github.com/OpenWonderLabs/node-switchbot
## OSの準備
OSはRaspiOS(buster)のliteをインストールしました。https://downloads.raspberrypi.org/raspios_oldstable_lite_armhf/images/raspios_oldstable_lite_armhf-2021-12-02/
「2021-12-02-raspios-buster-arm
Node.js環境構築に関することのメモ
個人的メモです。随時追記予定。
Raspberry pi os 64bit(多分ubuntu系)で確認しています。##Node.jsのインストールとアップデート。
“`sh:
$ sudo apt install nodejs
$ sudo apt install npm
“`nvmでNode.jsをインストールするよりaptでインストールしてnでバージョンをアップデートした方が良い気がした。
“`sh:
$ sudo npm install -g n
#バージョン確認
$ n –stable
$ n –latest
#Node.jsのインストール
$ sudo n latest
#バージョン変更
$ sudo n
“`“`sh:
#npmのアップデート
$ sudo npm update -g npm
“`参考:https://parashuto.com/rriver/tools/updating-node-js-and-npm
##Node.jsとnpmの削除
aptでアンインストールできなければこの手で良い…かも。“`sh:コンソ
Oktaの認証を使ってみた
# はじめに
システムのクラウド化が進んできており、**IDaaS (Identity as a Service)**と呼ばれる、クラウド経由でID管理、シングルサインオン (SSO)、アクセス制御などを提供するサービスの市場が拡⼤しています。IDaaSの主要なサービスとしては、Azure ADやOkta Identity Cloud、Google Cloud Identityなどが挙げられます。
今回は、**[Okta Identity Cloud](https://www.okta.com/jp/)の無償トライアル**を利⽤して、Okta認証を試してみます。本記事では、Oktaで**OpenID Connect(OIDC)**を⽤いて、AWS上に構築した[Express](https://expressjs.com/)(※)のアプリケーションへのアクセスを認証します。アプリケーションは、[npm](https://www.npmjs.com/)に公開されている[@okta/oidc-middleware パッケージ](https://www.npmjs.com/package/
【Node.js】Windows環境におけるCypressのIntegrationフォルダーの場所
# はじまり
CypressをWindows10にインストールした後、サンプルテストコードのファイル(`.spec.js`)がある`integration`フォルダーの場所を調べたら、Windowsに関する記事がすぐ見つからず探すのに時間が掛かったので(最終的にEverythingを使って見つけました・・・)、記事にしました。# Cypressをインストール
nodeのバージョンは16.3.1です。
以下で、インストールしました。“`dosbatch
npm install cypress –save
“`# Cypressを動作確認
Cypressをverifyして、“`dosbatch
npx cypress verify
“`Cypressを実行確認しました。
“`dosbatch
npx cypress open
“`# Where is `integration` folder?
動くことは確認できたので、最後に`integration`フォルダーの場所を確認します。
確認したら、ここにサンプルテストコードのファイルが置いてありました!
【Node.js,heroku】Twitter星座占いbot仕様改善・機能追加
## Twitter星座占いbotの仕様改善・機能追加
運用中のTwitter botの仕様改善と機能追加を実施しました。
[参考]リリカルルカのドリーム☆星座占い
Tweets by dreamhoroscope1[参考]改善前の仕様(基本設計書・ソースコード・結合テスト仕様書)
https://drive.google.com/drive/folders/14ns2by3Dn1YoMurb4tLvITmrF9Nd6hlx
[参考]改善後の仕様(基本設計書・ソースコード・結合テスト仕様書)
https://drive.google.com/drive/folders/1W8bNSsk9IMrxx1gzwPH7_aAfSw5K-I8w
## 1.仕様改善
■目次
(1)ファイル取得先の変更
(2)類似関数の統廃合
(3)サブ関数の切り出し
(4)エラー処理改善
(5)運用改善
(6)use strict(厳格モード)の使用
(7)その他細かい修正### (1)ファイル取得先の変更
ツイートに使用する画像やCSVファイルのデータは、元々heroku
【Node.js, heroku】Twitter botで天気予報(画像付き)
## 1.作ったもの
朝7時にツイートを実行します。
①現在の全国の天気を画像でツイート
②現在の全国の天気と気温をテキストでツイート
③9時~24時までの3時間ごとの全国の天気と気温をテキストでツイート
④9時~24時までの3時間ごとの全国の天気を画像でツイート### (1)ツイート内容(2022/1/3のツイート)
//ツイート全体
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/228630/24125400-3af0-fa1a-c7a3-688edb24f031.png)//画像抜粋(現在の天気)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/228630/56ff240f-ff5d-66e0-a182-168068337907.png)//画像抜粋(3時間ごとの天気)
![image.png](https://qiita-image-store.s3.ap-northe
【Node.js, heroku】Googleドライブの操作(データ取得/更新)
## 1.herokuからGoogleDriveを操作する
現在herokuで運用中のTwitter botがあります。
ツイートに使用する画像やCSVファイルのデータは、元々herokuにデプロイしてfsモジュールで読み込んでいましたが、下記の理由からそれらのデータをGoogleDriveから取得するように変更しました。
・画像・CSVファイルを編集する度にデプロイする必要がある
・HerokuのSlug Size(Slugは実行モジュール的な何か)が増大する### (1)botで行っているGoogleドライブの操作
以下の処理を行っています。
①ファイルIDの取得
②画像データの取得
③SpreadSheetデータの取得
④SpreadSheetデータの更新
⑤Documentデータの取得
⑥Documentデータの削除
⑦Documentデータの更新### (2)bot本体の仕様
以前作成した下記の星座占いbotの仕様を改善する形で実装しています。
[参考]【Node.js+heroku】Twitter星座占いbot作成https://qiita.com/natsum
blastengineを使ってNode.jsでメールを送信する
[blastengine](https://blastengine.jp/)はシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先に届くようになります。
今回はblastengineを使ってNode.jsでメール送信を行うまでの流れを解説します。
## ユーザ登録する
blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。
![getting-started-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/5c6c8cb0-9ad1-0a6d-88fe-e24bc3ee7b17.jpeg)
## 送信元ドメインのSPFを設定する
送信元として利用するドメイン(自分で持っているもの)の設定をします。これは任意のドメイン管理サービスで設定できますが、TXTレコードに以下のSPFを追加します。
“`
txt @ v=spf1 in
ホットペッパーAPIを使用して飲食店名からURL情報を取得してみた
# はじめに
ぐるなびWebサービスは2021年6月30日に無料APIサービスを終了してしまいました。
![スクリーンショット 2022-01-03 23.32.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/cf585f24-0991-66c2-80c3-c94806bd8194.png)
リクルートWEBサービスのホットペッパーAPIを使用して飲食店名からURL情報を取得します。
https://webservice.recruit.co.jp/about.html
APIキーの発行はこちら。
![スクリーンショット 2022-01-03 21.33.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/951485c0-5524-e969-eebc-cc32b642547e.png)
https://webservice.recruit.co.jp/register/
AP