サイボウズ(株)大阪オフィスにて開催しました。 Node.js v12がLTSになり、v13がリリースされたタイミングに合わせて開催しました。
当日の様子です。
登壇内容
Node.js v12のES Modules / @shimataro999
Node.js v12でES Modulesを使う方法や、CommonJSとES Modulesでの相互運用の話、importするファイルの拡張子の補完などについて話をしていただきました。
Node.jsではES Modulesを実験的にサポートしています。従来Node.jsはCommonJSというモジュールシステムを採用してきましたが、ここ数年Node.jsはWebの仕様に合わせていこうとしています。従来のCommonJSでのモジュール解決を破壊してしまうとnpmパッケージの多くが使えなくなる可能性があります。そのためNode.jsとしてもなかなかES ModulesをNode.jsでサポートするのに時間がかかっています。
資料中にも出てきましたが、以下の記事がNode.jsのES Modulesについて詳しく書かれています。
Node.js v13の気になる変更点 / @shisama_
10/22にリリースされたNode.js v13について話をしました。
内容は以下のブログに書いた内容と重複するので割愛します。
AmazonAPIGatewayのLambdaAuthorizerでJWTを検証するLambdaをServerlessFrameworkでデプロイする / @is_ryo
API Gateway Authorizersで使えるLambda AuthorizerでのJWT(JSON Web Token)の検証を行う話をしていただきました。
JWKやjsonwebtokenを使ったJWTの検証、ServerlessFrameworkを使ったLambdaにAuthorizerをデプロイする方法について紹介してくれました。
私個人としてはこの辺はかなり弱いので、「そんなものがあるのか」と初めて知ることばかりでした。
今回紹介していただいた内容を踏まえたサンプルも用意していてもらっています。
Cloud Storage for Firebaseとセキュリティルール / @mochiya98
FirebaseのCloud Storageにファイルを保存するときにメタデータに紐付かないファイルはアップロードを制限する方法について話をしていただきました。
Cloud Storageにはメタデータを付与してアップロードすることができます。しかし、クライアントが任意にメタデータを付与できてしまいます。任意ではなく、決まったメタデータ(例えば有効期限やパスワード)を必ず付与したい場合直接のファイルアップロードを禁止にします。ファイルのメタデータはFirestoreに保存しておき、アップロードはCloud FunctionsでAdminSDKから書き込みを行うことでファイルとメタデータの紐付けを担保するという方法を紹介していただきました。
Trying State Manegemant without Redux(updated) / @nkgrnkgr
Reduxを使わずにReact HooksとContextで状態管理を行う話をしていただきました。
Reduxはコードが冗長になり、教育コストが高めということでReduxを使わずにReactだけでやってみようとしたとのことです。
ContextとuseStateを使うことでグローバルな状態管理を行うことができます。Contextを使いたいときはuseContextでContextを取り出すことができます。
また、useReducerを使うことでReduxと同じようにactionが発行するtypeによって処理を分岐させるreducer関数を書くことはできます。しかし、この場合はReduxの冗長さは解決できません。
また、Reduxはredux-thunkやredux-sagaなどのミドルウェアが便利なので使っているという方は多いのではないでしょうか。しかし、Reduxを使わないことでJSのファイルのサイズを抑えることができたり、冗長さを回避するように書くことができるメリットはあります。
asyncQuerySelector / @salamander_jp
MutationObserverを使ったライブラリでターゲットのDOMが標示されるまで待つことができます。
デモページを用意してもらっています。
https://codepen.io/04/pen/ZEEKVyz?editors=1010
また、同様のことが可能なライブラリがあります。asyncQuerySelectorはこのライブラリを参考に作ったとのことです。
最後に
今回はNode.jsの発表もあり、LambdaやCloud Functions、フロントエンドの話など多彩な内容だったのが良かったと思います。
私も知らないことが多かったので勉強になりました。
今回、参加者(登壇者含む)が35名だったのに対してキャンセルが30名も発生してしまいました。プレミアムフライデーということもあってタイミングが良くなかったのかも知れません。
また、当日キャンセルせずに来られなかった方が6名ほどいました。
他の勉強会の主催者からも金曜日は避けた方がいいというアドバイスをいただいているのもあり、当日参加していただいた方々に何曜日が都合悪いかアンケートを取ってみました。 その結果、火曜と水曜がほぼ手が上がらなかったので、火曜と水曜に開催してみようかなと思いました。
関西Node学園では開場提供をしていただける方やJavaScriptやNode.jsに関わる発表をしていただける方を通年募集しています。
もし、興味がございましたらTwitterやshisama07@gmail.com宛にメールをしていただけると幸いです。
最後までお読みいただきありがとうございました。