Node.js関連のことを調べてみた2020年10月21日

Node.js関連のことを調べてみた2020年10月21日
目次

node.js+ExpressでGETデータとPOSTデータを取得しよう

## はじめに
node.jsを触り始めて数週間経ちフォームからデータを受け取る方法がなんとなくわかってきたので
自分用の備忘録兼初心者向けの記事として書き留めておきます。

Qiitaの記事を書くのが久しぶりなので誤字や表記ミス等あるかもしれませんご了承ください(コメントで指摘してくださると助かります)

## 環境
– OS
– windows10
– node.js
– v12.18.4
– Express
– v4.17.1

### 前提条件
以下コードはすべて下記のコードが既に書かれている前提で説明していきます。

“`javascript:app.js
const express = require(“express”)
const app = express()
app.use(express.urlencoded({extended: true}));
app.set(‘view engine’, ‘ejs’);
// View engineにEJSを指定していますがなんでもいいです。
//自分が好きな奴使ってください

app.get(

元記事を表示

【npm】nodistによるNode.jsとnpmのバージョン管理

## 要約

AngularやExpressといったNode.jsをテーマとするweb教材では、Node.jsを[Node.jsの公式サイト](https://nodejs.org/ja/)からインストールすることが多いです。しかし、この方法ではNode.jsの管理ができず、以後の学習に困ってしまいます。そこで、まずはNode.jsのバージョン管理ツールであるnodistをインストール、次にNode.jsをインストール、最後に必要なnpmパッケージをインストールするという方法のほうが長期的にはベターだと思います。この記事ではこの方法について解説します。

~nodist, Node.js, npm angular/cliの関係イメージ~

※Angular CLIに関しては、ご自身の必要なnpmパッケージに置き換えて考えていただければと思います。

![image-20201019212955021.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684644/5821d131-b159-bf4b-2d

元記事を表示

EC2でnode.jsサーバーを立てる時に最低限インストールするもの。

# 概要
EC2立てた後に、node.jsを入れる手順

# インストールするもの
・nvm(必須) これはgitが必要なのであとでやる。
・git(必須)

1、yumでgitをインストールする

“`sh

$ sudo yum install git
“`

2、nvmをインストールする。

“`sh
// git cloneする
$ git clone https://github.com/creationix/nvm.git ~/.nvm

// nvmへのパスを通す。
$ source ~/.nvm/nvm.sh

// ログアウト時にパスの設定が消えてしまうので.bash_profileに記述しておく
$ vi .bash_profile
→ファイルが開くので、下記を追加
# nvm
if [[ -s ~/.nvm/nvm.sh ]] ; then
source ~/.nvm/nvm.sh ;
fi
“`

3,node.jsをインストールする

“`
// インストール可能なバージョンを確認する。
nvm ls-remote

//インストール

元記事を表示

Node.js: require()は同期型ロード、importは非同期型ロード

この投稿では、Node.jsにおいてCommonJSとES Modulesのモジュールロードの仕組みの違いを、同期的か非同期的かの観点で説明します。

本稿では、CommonJSはCJS、ES ModulesはESMと略称で記載します。

:bow: 執筆にあたり、できるだけ努力して調査したつもりですが、もし用語の使い間違いや誤った説明などがございましたら、ご指摘や訂正の提案などを頂けると幸いです。

## 同期的なCJS、非同期的なESM

CJSはもともとサーバサイドJavaScriptにおけるモジュールの問題を解決するためにねられた仕様でした。サーバサイドではJSファイルがローカルディスク上にあることが普通です。そのため、JSファイルを探し、ファイルの内容を読み込む処理は**CJSでは同期的なロード方式**になっています。

一方の、ESMはサーバサイドだけでなく、ブラウザで使われることも考えて、同期的なロード方法に限定しないことになっています。もしも、同期的なロードに限定してしまうと、ブラウザでのユーザ体験が悪くなるからです。

ESMのロード方式を同期的な実装にするか、非同期

元記事を表示

振り向かずに「俺に何か用かい?さっきから尾けてきてるね」とシティーハンターっぽく言えるようになるプロダクト

#目的
 昨今ソーシャルディスタンスと言われ、人と人との距離があくようになりましたね。
 そんな中で後ろから近づいてくる人がいたら、怖いですよね。
 __早く気づいて__、先手を打ってシティーハンターっぽく話しかける準備をするためのツールを作りました。
 (セリフはお好みです。)
 そう、まずは気づくことが大事なのです!

 シティーハンターって何?と思った方は[こちら](https://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%86%E3%82%A3%E3%83%BC%E3%83%8F%E3%83%B3%E3%82%BF%E3%83%BC “シティーハンター”)

#出来上がったもの(CHになれたか)
 こうしてみると?

元記事を表示

温度センサーとLEDで室温をぱっと見で分かるものを作ってみた

# 目的
温度センサーとLEDを使ってみたかったので、2つを同時に使って色で室温がぱっとわかるものを作ってみました。

# 実現方法
### 使用したもの
・obniz Board 1Y
・高精度IC温度センサー LM60BIZ
・マイコン内蔵RGB 8mmLED PL9823-F8

### ロジック
個人的には25℃をより下だと涼しい、25℃より上だと暖かいだと感じているので
 温度センサーで取得した温度が25℃より大きい場合、**オレンジ**
 それ以外の場合、**水色**
にしました。
obnizへは
 温度センサー 0、1、2 へ接続
 LED 9、10、11 へ接続
しています。

# 実際に動かしてみた
実際に動かした動画をTwitterにあげてます!
※温度センサーに指を近づけて、温度をわざとあげました。

スマホで写真撮る人は必読?スマホのフラッシュライト進化させます。

#目的
スマホのフラッシュライト活用してる人いますか?
落とし物探すときに隙間照らすぐらいしかないですよね。

でも、写真を撮るときに光って大切なんです。(知らんけど)
なので、被写体との距離でライトの明るさを自動で調整できるようにしました。

#この記事でできること
・node.jsでobnizを操作
・超音波測距センサ(HC-SR04 )で物体との距離を測る
・LEDライト(WS2811)を光らせ、明るさを調節する
・スマホがガジェット感出てかっこよくなる(気がする)

#完成したらこんな感じ

スマホはこんな感じ
![スマホ写真.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737363/50e11ed9-53c6-901d-e00a-d32d518310ec.jpeg)

動かしたらこんな感じ

Node.jsのインストール

# 概要
* MacにNode.jsをインストールする。
* ターミナルでHomebrewを使ってインストールする。

# 前提
* Homebrewをインストール済
* ログインシェルがzsh

# 手順
1. nodebrewをインストールする
2. Node.jsをインストールする
3. パスを通す

## 1. nodebrewをインストールする
下記を実行する

“`shell:terminal
brew install nodebrew
“`

※補足:nodebrewのバージョン確認

“`shell:terminal
nodebrew -v
“`

## 2. Node.jsをインストールする
### 2.1 nodebrewでNode.js(安定版)をインストールする
下記を実行する

“`shell:terminal
nodebrew install-binary stable
“`

※補足:下記のような結果が出て、インストールができなかった場合

“`shell:terminal(結果)
Fetching: https://nodejs.org/d

元記事を表示

M5StickCの書き換えが面倒だったので、Node.jsでArduinoっぽくしてみた

M5StickCのように、ESP32にGroveが付いているのが多いで、いろんな周辺デバイスをいじりたいのですが、そのたびに、リコンパイル&書き込みをするのはすごく面倒で時間がかかるので、MQTTを使ってリモートから操作できるようにして、クライアント側はNode.jsでたたけるようにしました。

M5StickC側では、I2C、Serial、Lcd、Gpioを操作できるようにしましたので、一度バイナリを書き込んでしまえばあとは、クライアント側のNode.jsで周辺デバイスのドライバを書くことができます。
ですが、動作はそこまで速くない(特にLcd描画系)ので、お遊び程度に思ってください。

で、Node.jsになって開発しやすくなったので、手元にあったI2Cデバイスを一気に実装しました。

・M5Stack ENVユニット
 https://www.switch-science.com/catalog/5690/
・M5Stack TVOC/eCO2ユニット
 https://www.switch-science.com/catalog/6619/
・Grove OLED Disp

元記事を表示

Obnizと圧電スピーカーで日が暮れたら「ゆうやけこやけ」を流して切なくなってみた

#まずは完成形
CdSセル(照度センサ)で暗くなると、ゆうやけこやけが流れます。
この曲聞くと切なくなるな。。

EC2で古いバージョンのnode.jsを最新バージョンにする

ポートフォリオの作成がひと段落ついたのでAWSにデプロイしようとしたところ、node.jsの設定でどハマりしたので皆さんに情報共有していこうと思います。

#事象
以下の記事を参考にAWSで通常デプロイに挑戦しました。

【画像付きで丁寧に解説】AWS(EC2)にRailsアプリをイチから上げる方法↓
https://qiita.com/Yuki_Nagaoka/items/975b7598806d6ae0c0b2

こちらの記事を参考にRailsアプリの公開編まではスムーズにいきアプリの公開をしてみたのですがurlを入力してみたところ「このサイトにアクセスできません」と表示され・・・

#ログを調べてみると
EC2インスタンスに繋がった状態で以下のコマンドを実行しログファイルを参照

“`EC2.
[daiki@ip-10-0-0-56 log]$ tail -n 30 production.log
F, [2020-10-12T13:28:37.845307 #22722] FATAL — : [66518e09-a517-412e-8f3c-97c588a4b2f1] Act

元記事を表示

Node.jsでTop-Level Awaitを試す

Node.jsでTop-Level Awaitがサポートされ(て)たので、非同期通信と言えばなaxiosで試してみます。

## Top-Level Await

今まではawaitを利用する際に、async関数内じゃないと使えませんでしたが、async関数を宣言せずにawaitを使えるようになります。

## v14.3.0でサポート、v14.8.0でフラグなし

* [v 14.3.0](https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V14.md#14.3.0)

Top-Level AwaitはNode.js v14.3.0でサポートされましたが、この時点だと`–experimental-top-level-await`のフラグを付けて実行する必要がありました。

* [v 14.8.0](https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V14.md#14.8.0)

v14.8.0以降でフラグ無しで

元記事を表示

obniz占い。トランプさん再選するらしい。

#obniz占いでアメリカ大統領選挙を占ってみた
 もうすぐアメリカ大統領選挙の投開票日。トランプ再選か、はたまた、バイデンさんか、obniz占いで、選挙結果を占ってみました。
 もし、的中したら今後個人的な悩みもobnizに占ってもらうと思う。
※妻に小遣いの値上げを交渉すべきかどうか悩んでいる。

ArchiverがZIPに含めるファイルをフィルタする

NodeモジュールArchiverは、ディレクトリをZIP圧縮するとき、ZIPに含めるファイルをフィルタすることができます。
(できないと思い込んでて、普通にできた。。)

# ZIP圧縮するディレクトリ
以下のディレクトリをZIP圧縮するとします。

“`:ZIP圧縮するディレクトリ
somedir
│ file1.txt

├─dir1
│ file2.jpg
│ file3.txt

└─dir2
file4.jpg
file5.txt
“`

# プログラム
プログラムは以下になります。
ディレクトリをZIP圧縮するためにdirectory関数を使いますが、第3引数にフィルタする関数を渡せます。
フィルタする関数の引数には、ZIP圧縮に含めるフォルダ・ファイルのデータが渡されます。
このデータをみて、含める場合データを返し、含めない場合falseを返します。
サンプルでは拡張子.txtのファイルを含めないようにしています。

“`java

元記事を表示

Gitのリポジトリ移行を Selenium(Node.js) +シェルスクリプトで全自動化した話

先日、業務で『今までGitのリポジトリはGitLabで管理していたが、今後はGitHubを使用する (色々と便利な機能が多いため。GitHub Actionsとか)。そのためのリポジトリ移行の取りまとめ役』 というタスクを任されました。

会社には1,000近いリポジトリがあり、これを全て手作業で移行しようとすると膨大な時間がかかります(ストレスめっちゃかかりそう…)。
その移行作業を Selenium(Node.js) +シェルスクリプトで全自動化する事に成功しました。

—————————————
#### 前提:下記の変数の箇所は、あなたの環境に合わせて逐一書き換えてください

init.sh
${あなたのsshパスワード}
${移行元 Gitアカウント}
${移行先 Gitアカウント}
create_repo.js
${あなたのGitHubアカウント名}
${あなたのGitH

元記事を表示

npm run startを実行するまで~初めてのNode.js動作確認~

# 背景
実務経験ないまま、共同開発を経験させていただく機会があり
npm run startでブラウザが立ち上がるまで動作確認する必要があった。
内容自体は単純ではありますが、覚えも含めて投稿させていただきます!
また、この動作確認の一連の流れのまとめがなかったため、投稿してみようと思った次第です。

# 前提
– 2020/10時点での状況
– Windows使用者
– 当時の知識:「npm」「Node.js」というワードを始めて聞いた…
– Git/GitHubを全く触ったことがなかった…

作業手順優先で詳細は本投稿では省いています。
詳細はリンク先で記載がありますので、申し訳ないですがそちらをご参照くださいm(__)m

## 手順
### 1. GitHubにアカウント登録・GitHub内でリポジトリを作成
作業箇所:ブラウザ
https://qiita.com/kutarou197/items/8acea22ae36dbcf45c9f

### 2. Node.jsのインストール
作業箇所:ブラウザ
https://qiita.com/sefoo0104/item

元記事を表示

heroku update available from 7.42.6 to 7.46.0

herokuコマンドを実行したときにこれが出た。

“`js
» Warning: heroku update available from 7.42.6 to 7.46.0.
“`

これを実行すればOK

“`js
heroku update
“`
※↑自分の場合、結構時間がかかった。

元記事を表示

OTHERカテゴリの最新記事