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

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

Serverless のプラグインを TypeScript で作成する方法

## はじめに

[Serverless Framework](https://www.serverless.com/) を使っていて、度々デプロイ時に手動で設定していた作業内容を自動化したいなと思い、プラグイン作成の知識習得も兼ねてライブラリを作成し [NPM](https://www.npmjs.com/) で公開してみました。

[serverless-amplify-auth ?](https://www.npmjs.com/package/serverless-amplify-auth)

今後も開発する可能性はありそうなので Serverless のプラグインを TypeScript で作成する際の手順をまとめておきました。各手順はザックリと紹介しつつ、**主にその過程でハマった点や工夫した点に重きをおいて記事を書いていきます。**

## 動作環境

– Node.js 12.19.0
– Serverless Framework
– Framework Core: 2.10.0
– Plugin: 4.1.1
– SDK: 2.3.2
– Compone

元記事を表示

Firestore 全てのドキュメントに対して、一気にフィールドを追加する方法(Cloud Functions)

#全てのusersドキュメントに対してフィールドを追加したい!
私が運営しているアプリではFirestoreを使っている。
**新機能の追加にあたって、usersに入っているドキュメント全てに対して`isLocked`というフィールドを追加したくなった。**

イメージはこんなん:point_down:
![スクリーンショット 2020-11-07 19.26.19.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/cd9c5113-1588-7654-be0a-7a692032f006.jpeg)

Firestoreのコンソール画面からフィールドを追加することはできるが、それだと1つ1つ全てのユーザーに対して手動で操作しないといけない・・・

**ユーザーが1000人いたら、1000回Firestoreのコンソール画面で「フィールドを追加→フィールド名入力→タイプを選択→値を入力」を繰り返さないといけない!:sweat_smile:**
![スクリーンショット 2020-11-08 17.

元記事を表示

Firebase Cloud Functions Node.js 8 のサポートを終了しました。

#久しぶりにCloud Functionsのコンソール画面を開くと、、
![スクリーンショット 2020-11-08 14.23.29.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/10adcad2-0ee8-c446-f4be-7754150733c8.jpeg)

「ん?何やこれ?笑」
そう思って、とりあえずさっきターミナルからデプロイした時のログを確認することに。

“`terminal
functions: Warning: Node.js 8 functions are deprecated and will stop running on 2021-03-15. Please upgrade to Node.js 10 or greater by adding an entry like this to your package.json:

{
“engines”: {
“node”: “12”
}
}

Th

元記事を表示

ExpressとPassportでOpenID Connect認証を実装する

# 概要

OpenID Connect(以下、「OIDC」と略記)のRelying Party(以下「RP」と略記)を、Node.jsのExpressを使ったWebページ上にPassportを使って簡単に実装する方法を説明する。

本サンプルの前提は以下。

* 認証フローは「認可コードフロー(RFC 6749, 4.1. Authorization Code Grant)」を使う
* OIDCのIDプロバイダーとして、Google Cloud Platform(以下、「GCP」と略記)を使う

使うライブラリは以下。

* Express
* Passport
* Passport-OpenID Connect

なお、OIDCのRPを実装するだけであれば、`auth0/express-openid-connect` を使うのが一番簡単かもしれない。次のようにするだけで、以降の`app.use()`を認証ページとして設定できるので。

“`
const { auth } = require(‘express-openid-connect’);
app.use(
auth(

元記事を表示

EC2をt2.microで立てたときにやることメモ

勉強用のEC2インスタンスを間違って停止ではなく終了してしまい、作り直すことがちょこちょこあるため、インスタンスを立ち上げたときにだいたいやることを備忘録として残しておく

# 各種最新化

“`shell
sudo yum update -y
“`

# スワップメモリを増やす

t2microのようなメモリが少ないインスタンスの場合、Angularのprodビルドのようにメモリを多く使う処理で落ちてしまうため、スワップメモリを増やして回避します

“`shell
# 4GBのスワップファイルを作成(メモリが少ないのでbsが多いと失敗する)
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
# スワップファイルに読み書き権限付与
sudo chmod 600 /swapfile
# スワップ領域のセットアップ
sudo mkswap /swapfile
# スワップ領域を有効化
sudo swapon /swapfile
# スワップ領域の確認
sudo swapon -s
“`

参考:https://aws.amaz

元記事を表示

RHEL 8にNode.js 14をインストール(AppStream)

# はじめに

Application Stream(AppStream)を利用してRHEL8にNode.js 14をインストール
参考:[RHEL8のパッケージ構成 – BaseOSとApplication Stream – 赤帽エンジニアブログ]( https://rheb.hatenablog.com/entry/rhel8_baseos_and_appstream)
   [第4章 新機能 Red Hat Enterprise Linux 8 \| Red Hat Customer Portal](https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html/8.3_release_notes/new-features#enhancement_dynamic-programming-languages-web-and-database-servers)

## サポート

本手法で導入した場合、[Red Hat Enterprise Linux 8 Application Stream

元記事を表示

node.jsのExpressを導入するときの手順メモAzure前提

# 概要

自分用の( ..)φメモメモ。
node.jsのexpressを新規に導入するときの手順。
AzureのWebAppで動かす前提で、TDD想定でsrcとtestフォルダに分けるものとする。
必要最小限。test側のモジュール導入は省略。

# 手順のメモ

`express-generator` はグローバルで導入済みとする。

Expressのスケルトン作成してAzure向け且つTDD向けにファイル移動する

“`
express myapp –no-view
mkdir src
mkdir test
copy myapp\bin\www .\server.js
xcopy myapp\public .\src\public\
xcopy myapp\routes .\src\routes\
copy myapp\app.js .\src\
npm init
“`

server.jsのファイル書き換える

“`
var app = require(‘../app’);
// ↓
var app = require(‘./src/app’);
“`

p

元記事を表示

Nodejsのバージョンをv8→v15に変更して色々戸惑ってる話

半ば自分へのメモも兼ねて。

### Nodejsのv15が出ていた……

二週間遅れぐらいでNodejsの新バージョンを知りました。
半年毎にメジャーバージョンアップとか判断が早い……。
https://nodejs.org/en/blog/release/v15.0.1/

### せっかくなのでNuxtJSを動かしてみる

とりあえずnodebrewで新バージョン入れて切り替え。
windowsのwslでやってます。

“`
nodebrew install v15
nodebrew use v15
“`
で、手元のNuxt(v2.12)でサクッと実行。

“`
npm run dev
“`

▼ ▼ ▼

“`
Error: Node Sass does not yet support your current environment: Linux 64-bit with Unsupported runtime (88)
“`
まぁそうなるなー。
作業中に入れたnode-sassが合ってない感じ?

### 手抜きせずにちゃんとupdateしましょう

nodeモジ

元記事を表示

VRMでブラウザで動く多人数オープンワールドゲームVZeroを作った

# VZero – Reborn Virtual from Zero.