- 1. node.js+ExpressでGETデータとPOSTデータを取得しよう
- 2. 【npm】nodistによるNode.jsとnpmのバージョン管理
- 3. EC2でnode.jsサーバーを立てる時に最低限インストールするもの。
- 4. Node.js: require()は同期型ロード、importは非同期型ロード
- 5. 振り向かずに「俺に何か用かい?さっきから尾けてきてるね」とシティーハンターっぽく言えるようになるプロダクト
- 6. 温度センサーとLEDで室温をぱっと見で分かるものを作ってみた
- 7. Node.js のバージョン管理についてのメモ(nodebrew, nodenv)
- 8. スマホで写真撮る人は必読?スマホのフラッシュライト進化させます。
- 9. Node.jsのインストール
- 10. M5StickCの書き換えが面倒だったので、Node.jsでArduinoっぽくしてみた
- 11. Obnizと圧電スピーカーで日が暮れたら「ゆうやけこやけ」を流して切なくなってみた
- 12. GitHub Actions で WebGL2 を動かすまで
- 13. EC2で古いバージョンのnode.jsを最新バージョンにする
- 14. Node.jsでTop-Level Awaitを試す
- 15. obniz占い。トランプさん再選するらしい。
- 16. ElectronでVulkanを動かす技術は新しい形のゲームエンジンを作り出すか?
- 17. ArchiverがZIPに含めるファイルをフィルタする
- 18. Gitのリポジトリ移行を Selenium(Node.js) +シェルスクリプトで全自動化した話
- 19. npm run startを実行するまで~初めてのNode.js動作確認~
- 20. heroku update available from 7.42.6 to 7.46.0
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になれたか)
こうしてみると?何かを近づけてみる pic.twitter.com/V8FJNOvpCJ
— Sugizo (@Sugizo50073508)
温度センサーとLEDで室温をぱっと見で分かるものを作ってみた
# 目的
温度センサーとLEDを使ってみたかったので、2つを同時に使って色で室温がぱっとわかるものを作ってみました。# 実現方法
### 使用したもの
・obniz Board 1Y
・高精度IC温度センサー LM60BIZ
・マイコン内蔵RGB 8mmLED PL9823-F8### ロジック
個人的には25℃をより下だと涼しい、25℃より上だと暖かいだと感じているので
温度センサーで取得した温度が25℃より大きい場合、**オレンジ**
それ以外の場合、**水色**
にしました。
obnizへは
温度センサー 0、1、2 へ接続
LED 9、10、11 へ接続
しています。# 実際に動かしてみた
実際に動かした動画をTwitterにあげてます!
※温度センサーに指を近づけて、温度をわざとあげました。温度センサーとLEDを組み合わせてみました!Node.js のバージョン管理についてのメモ(nodebrew, nodenv)
Node.js 自体のバージョン管理は `nodebrew` や `nodenv` などがありますが、お好みでいいと思います。
`nodenv` はディレクトリごとにバージョンを指定することが可能ですが、`nodebrew` でも必要に応じてバージョンを切り替えることができるので、そこまで困ることはありませんでした。
初心者であれば `nodebrew` をお勧めします。
`nodebrew` で困ることが発生してから `nodenv` に乗り換えるということでいいと思います。【参考】
[・ MacにNode.jsをnodebrewでインストールして環境構築【決定版】](https://qiita.com/7110/items/efe0be1be11bed1db143)
[・ MacにNode.jsをインストール](https://qiita.com/kyosuke5_20/items/c5f68fc9d89b84c0df09)
[・ MacにNode.jsをインストール(anyenv + nodenv編)](https://qiita.com/kyosuke5_20/itemスマホで写真撮る人は必読?スマホのフラッシュライト進化させます。
#目的
スマホのフラッシュライト活用してる人いますか?
落とし物探すときに隙間照らすぐらいしかないですよね。でも、写真を撮るときに光って大切なんです。(知らんけど)
なので、被写体との距離でライトの明るさを自動で調整できるようにしました。#この記事でできること
・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セル(照度センサ)で暗くなると、ゆうやけこやけが流れます。
この曲聞くと切なくなるな。。#protoout #obniz
夕暮れ時に「ゆうやけこやけ」を圧電スピーカーから流してみたよ。 pic.twitter.com/km2YmlAKAi— @Jis (@PmanRabbit) GitHub Actions で WebGL2 を動かすまで
![capture_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100367/d3bdc9fb-55d4-3bdd-bdcd-e1ac1aac7e2a.png)
## 概要
WebGL2 を含むプログラムを GitHub Actions の Node.js 環境で実行する現実的な選択肢は二つ– **Headless Chrome** を使って localhost 越しに呼びたい式を渡し、評価された結果を受け取る
– **node-gles** を使って WebGL の関数呼び出しを OpenGL ES に内部で変換して呼び出すどちらも面倒な点はありますが、それぞれ動かすところまで試したのでやり方を書いておきます。
—
### 対象読者
– Node.js を使ったことがある
– WebGL を使ったことがある### 環境
– Node.js
– TypeScript
– Jest### リポジトリ
https://github.com/agehama/webgl2-testEC2で古いバージョンの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に占ってもらうと思う。
※妻に小遣いの値上げを交渉すべきかどうか悩んでいる。obnizでアメリカ大統領選を占ってみる。#obniz #protoout ElectronでVulkanを動かす技術は新しい形のゲームエンジンを作り出すか?
この話の続きみたいな記事です。
https://qiita.com/nanikore55554/items/5a620bfe4f7956ae8a85
Electron(より正確に言うとNode.js上)である程度現実的な形でVulkanを動かす事に成功しました。ですが、大半の人から見れば「で、それが何の役に立つの?」と言われると思います。
で、考えました。**この技術の使いみちを。**
#これを使えば個人でもUnityのようなゲームエンジンを開発可能?
個人的に真っ先に思ったのが**「これを使えばゲームエンジン**(正確には3Dモデリングツールなどといった3D開発ソフト)**を個人や小さな会社でも簡単に作れるようになるのではないのか?」**ということです。
というのもElectronやNW.jsなどのNode.jsを用いたGUIツールキットはマルチプラットフォームが簡単にできるということの他にHTMLやCSSの技術を転用できるため、非常に作りやすい(≒人員を集めやすく、開発スピードが早い)という長所があります。(この辺は好き嫌いが分かれやすく、node.jsの方が使いづらく
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
“`
※↑自分の場合、結構時間がかかった。