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

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

iPhoneから1タップするだけでAWS上のプログラムをON/OFFする方法

#はじめに

常にクラウドでプログラムを走らせておいて、
自分の気の向くままに、どこでもいつでも手軽にプログラムを停止、再起動したい時ってありませんか・・?
私はあります!

わざわざon/offするだけなのに外出先にノートPCを持ち歩きたくない、
**iPhoneひとつで、もしくはAppleWatchからポンと押すだけで実行・停止できる。**
なんかかっこいい、、

**iPhoneや、AppleWatchに「ヘイ Siri! ホゲをつけて」**
と言うだけでAWSプログラムを起動できます。
ナンカ、カッコイイデス。

「したいもの&カッコいいものは作ればいい」ということで早速作ってみました。

##仕様条件
– クラウドはAWSのEC2
– 実行停止するプログラムはNode.js
– 自宅にネット接続されたラズパイが常駐している事
– Apple HomeKit環境を自宅で設定できること
– iPhoneユーザーであること

##概要
早速、ネタバラシします。
AppleにはIoT家電を制御する環境としてHomeKitがあります。
[Apple HomeKitの説明](https:

元記事を表示

Raspberry Pi 4+Chinachu v0.10.1-gamma.0 地デジ録画サーバー構築

# はじめに

Raspberry Pi 4が手に入って色々と遊んでいたタイミングでちょうどよく(?)ブルーレイレコーダーが壊れたので、買い直すくらいなら自作するかという事で今回地デジ録画サーバを構築した時のメモです.

ひとまず録画してエンコードできれば良いのでストリーミング再生手順は省略。

なお、本記事は以下の記事を参考に環境構築しています。
https://qiita.com/shotasano/items/3809b8f3e0b62d51d3c3

## ⚠︎注意
以下の手順は全て自己責任でお願いします。
テレビ番組のコピー、配信は違法です。私的利用だけにして下さい。
TS抜き自体が現状グレーなのでそこらへん理解した上で利用できる方だけ利用して下さい。
この記事を参考にしたことにより生じたあらゆる損害について筆者は一切の責任を負いません。

# 使用ハード

## [Raspberry Pi 4 Model B / 4GB](https://www.amazon.co.jp/dp/B07WR5W2D6)
Raspberry Pi 3でも同じ手順でいけます。
Raspberry

元記事を表示

CognitoUserPoolの情報をLambda経由でRDSへ連携した

#前書き
勉強用に何かしらのウェブサービスを作ろうと常々考えていたのですが、やはり認証基盤を自分で一から作るのは手間が非常にかかるので足踏みをしていました。
そこでCognitoを使おうと思ったのですがサーバーレス構成もNOSQLも使ったことがないのとNOSQL辛いよというアドバイスを頂いたので、とりあえず作るということを優先して日頃なれているRDBに認証情報を放りこみたかったという感じです。
なお技術スタックとしてLambdaではNode.js、RDSにはPostgreSQLを採用しました。

#流れ
1. CognitoのイベントをLambdaでフックする
2. LambdaでCognitoの認証情報を取得する
3. LambdaからRDSへデータを書き込む

## 1. CognitoのイベントフックをLambdaで行う
Cognitoは`サインアップ前`や`確認後`などそれぞれのイベントに合わせてLambdaでフックすることができます。
今回のユースケースでは`確認後`に行うのが適切でしょうか。今回私は`確認後`で設定しました。
https://docs.aws.amazon.

元記事を表示

タイプスクリプトでドメインオブジェクトやってみた

読んだ
[現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法 Kindle版
](https://www.amazon.co.jp/gp/product/B073GSDBGT/ref=ppx_yo_dt_b_d_asin_title_o03?ie=UTF8&psc=1)

“`typescript:成果物1
class ShippingCost {
readonly basePrice: number;
readonly MINIMUM_FOR_FREE = 3000
readonly COST = 500
constructor(basePrice: number){
this.basePrice = basePrice
}

amount(): number {
if(this.basePrice < this.MINIMUM_FOR_FREE) return this.COST return 0 } } const ABOVE_THRESHOLD: number = 5000 const BEL

元記事を表示

初心者のためのRESTful

#概要
web APIを設計するためのシンプルな標準の方法であるRESTfulの概要をメモとして残す。
またその際に重要となるhttpStatusCodeやCRUDの概要も追記する。

#参考資料
オライリージャパン出版 Jonathon Rasmusson 著 玉川紘子 訳
「初めての自動テスト webシステムのための自動テスト基礎」

#RESTfulとは
参考資料p67より
>「ねえみんな、Webのリソースにアクセスする方法をそれぞれ独自に定義するんじゃなくて、探しているリソースの名前をURLとして定義して、リソースと通信するための操作を4つの動詞に絞ったらどうだろうか、つまり、GET、POST、PUT、DELETEの4つだ。」

RESTfulとはwebAPIを設計するときの方法またはその定石のことである。
| リソースに対する動作 | リソースの場所 |
|:-:|:-:|
| HTTP GET | /users/:id |
| HTTP POST | /users |
| HTTP PUT | users/:id |
| HTTP DELETE | users/:id |

元記事を表示

Angularで簡単アニメーション:左からフェードイン編

犬クジラです。
初投稿の今回はAngularで簡単なアニメーションを動かす内容について投稿します。
これまで多くのWEBアニメーションはCSSを使って動かしていますがAngularでも簡単に作ることができます。
手順公開のため[Stackblitz](https://stackblitz.com/)上にて作業を行っています。

# 今回の完成デモ
![movie.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561833/fe60d602-31ef-b838-d7a6-a95e28009797.gif)

# app.module.tsにAnimationsモジュール追加

Angularでアニメーションを利用するにはBrowserAnimationsModuleが必要なので追加します。
モジュールの追加インストールが必要な場合は追加してください。

“`typescript:app.module.ts
import { NgModule } from ‘@angular/core’;
import

元記事を表示

各種 Web Application Framework メモリ使用量比較調査 (Go, Ruby, Python, Node.js, Java)

## 概要

– 「Hello World な HTML を返す程度の Web アプリケーション」または「それぞれの公式ドキュメントに載っているチュートリアルの初期状態に近いもの」を作成してメモリ使用量を比較する
– Web アプリケーションサーバは現時点でよく使われていると思われるものを使用する
– テンプレートエンジンはフレームワークのデフォルト設定またはフレームワークが推奨しているものを使用する
– macOS Catalina 上でメモリ使用量を計測
– メモリ使用量の計測には ps コマンドの RSS 値を使う (複数のプロセスを使うものはRSS値を単純に足したものをメモリ使用量とした。メモリ共有部分については考慮していないため、もう少しメモリ使用量が少ないかもしれない)

## 調査結果

メモリ使用量が少ない順に並べる。

– 7MB: Go 1.13 + Gin 1.5
– 10MB: Go 1.13 + Revel 0.21
– 24MB: Ruby 2.7 + Sinatra 2.0 + Puma 4.3
– 40MB: Python 3.8 + Flask 1.1

元記事を表示

npm コマンドでグローバルインストールされたパッケージを表示する

次のコマンドを実行することで、グローバルインストールされたパッケージが表示される。

“`sh
npm ls -g –depth=0
“`

– `npm ls` : インストールされているパッケージを表示する
– `npm ls -g` : グローバルインストールされているパッケージをする
– `npm ls –depth=0` : トップレベルのパッケージのみを表示する

元記事を表示

試しに「OpenID Connect Provider Certification」を通してみた

以前、なんちゃってOpenID Connectサーバを立ち上げました。( [なんちゃってOAuth2/OpenID Connectサーバを自作する](https://qiita.com/poruruba/items/042adba2ac9a34839546) )

それはそれで役に立っているのですが、OpenID Connectに準拠しているかどうかを確認するためのTest Suite があったので、物は試しで通してみました。
結果は、散々でした。Optional機能は実装していないので当然ではありますが。

Conformance Testing for OPs
 https://openid.net/certification/testing/

# テストの準備

まずは、準備として、テスト対象のエンドポイントのURLやサポートする機能を指定します。

 https://op.certification.openid.net:60000/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.c

元記事を表示

AWS+NodeJSでサーバレスな環境構築④

# はじめに
今回は[前回](https://qiita.com/isacRU/items/b4ab67d12f2d2377aea8)の続きで、DELETE(対象ユーザーの削除), GET(全ユーザーの取得) PATCH(対象ユーザーの更新)を作っていきます。

# DELETE(対象ユーザーの削除)
指定されたidを元に、対象のユーザーが削除されるようにしていきます。
### Lambda関数の作成と設定
スクリーンショット 2020-01-04 15.20.08.png

ソース

“`javascript:index.js
‘use strict’;
const AWS = require(‘aws-sdk’);
const myRegion = “us-east-2”;

AWS.config.updat

元記事を表示

AWS+NodeJSでサーバレスな環境構築③

# はじめに
[前回の記事](https://qiita.com/isacRU/items/f5a16683331779805a1b)ではDynamoDBのテーブルと項目作成、Lambda関数で使うロールやインラインポリシーの設定を行いました。今回はその続きで、API Gateway(REST APIでCRUD実装)をトリガーにし、Lambda(NodeJS)関数呼び出して、DynamoDBに参照や更新をできるようにします。
表現等が不適切の場合はご指摘いただければ、幸いです。
※サーバレスに関してよくわからない方は、[こちら](https://qiita.com/isacRU/items/fe4751603d3da32b2daf)をご覧いただければと思います。

# アーキテクチャ図
![serverless.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43096/d77beb25-d5cd-0908-9502-7645b2c76bdb.png)

# 流れ
– ソースで直接(Api gatewa

元記事を表示

node.jsでAbemaをダウンロードする

### [これを見よ](https://ysok2135.hateblo.jp/entry/2020/01/04/022105)

元記事を表示

4年ぶりにエンジニアに戻った人の話

こんにちは、Qiita初投稿です。

色々あって昨年末に4年間勤めていた外資系のゲーム会社でのプロデューサー業を辞めてエンジニアに戻りました。
前職ではエンジニアではなく、翻訳やアカウントマネージメント系の仕事などをやっていました。
エンジニアブログを書く前に、今回は元エンジニアが4年間経ってエンジニアに戻って世界が一変していた、浦島太郎のような話をしたいと思います。

## 経歴:
### 2011年: 大手企業に新卒でエンジニア就職
秋入社というのもありまさかの**新卒唯一の日本人**、まわりは中国人とインド人ばっかり。入社一日目でエンジニア職人気なさすぎオワタと思う。まわりのエンジニアが毎月行われれていた深夜作業に駆り出されていくのを怯える毎日(結局一度もその作業をすることはなかったが)

### 2013年: ベンチャー企業へ転職
前職ではテスト業務しか触れず、いつの間にかポジションもQAエンジニアになってしまったのでエンジニアらしいことがしたいと一念発起して、当時黎明期だったモバイルアプリ業界へ転職。たまたま入社直後にアプリがヒットし、会社が急成長。カスタマーサポート担当→Q

元記事を表示

AWS+NodeJSでサーバレスな環境構築②

# はじめに
[前回の記事](https://qiita.com/isacRU/items/fe4751603d3da32b2daf)ではAPI Gateway+Lambda(NodeJS)を組み合わせてWEBページを表示するというアウトプットでした。今回はDynamoDBのテーブルと項目作成、Lambda関数で使うロールやインラインポリシーの設定を載せていきます。サーバレスに関しては個人的に興味があるとのと、次の案件で用いるからその予習になります。自身も初めてということもあり、表現がわかりにくいところもあるかもしれません。その場合は容赦無く、コメントで指摘していただければ幸いです。
※サーバレスに関してよくわからない方は、前回の記事をご覧いただければと思います。

# DynamoDBってなぁに?
簡単に言ってしまうと、AWSがマネージドサービスとして提供しているNoSQL(非リレーショナル)データベースになります。「値」とそれを取得するための「キー」だけを格納するというシンプルな機能を持った「Key-Valueストア」です。

**一般的なユースケース**
・ミリ秒単位のアクセスレ

元記事を表示

LINEトークをwindows10(NODE.js+google-home-notifier+Firebase)経由でgooglehomeに話させる(2019.12 )

# はじめに
windowsPCでLINE投稿内容をgooglehomeを話させてみました。先人達の記載の内容を参考にさせていただきました。ありがとうございます。
node v12.13.1
npm v6.12.1
google-home-notifier v1.2.0
windows 10pro

# windowsにNODE.js環境
下記を参考にNODE.js環境を構築して、googlehomenotifierを導入します。
[Windows PCを使ってGoogle Homeを喋らせてみた](https://qiita.com/t_watari/items/8f7ec603a0fe1a3a35da)

すべてを[C:\Program Files\nodejs]下でインストール。
作業フォルダ配下にするべきでしたが、やりなおす気にはなれず。。
warningがたくさん出ましたが気にせず、進みました。

# googlehomenotifier修正
下記を参考に修正
①[google-home-notifierで”Error: get key failed from goo

元記事を表示

[初心者向け]IBM Cloud のKubernetesクラスタにNode.jsアプリをデプロイ

# はじめに
年が明けまして2020年を迎えましたが、皆様いかがお過ごしでしょうか。

2020年代は5Gの整備が完了し、IoTや自動運転技術が大いに浸透する10年であると言われていますが、2010年代も激動の10年でした。
特に、2013年ごろから開発が始まったKubernetesがようやくGA段階となり、各クラウドベンダーでマネージドサービスとして展開されたことが大きかったと思います。
これによってコンテナ技術やマイクロサービスがより管理しやすくなり、これから様々なサービスが生まれ進化してくことでしょう。

今回は、初投稿ではありながら、これからKubernetesを触ってみたい!という方のために、私がいろんな文献や技術書を読み漁って勉強した、

Kubernetesでアプリケーションを外部公開する手順

を、IBM Cloudを用いて紹介しようと思います。

※なお、筆者も勉強し始めで、詳しい技術や論理は理解している途中でございますので、深く知りたい!という方はこの後の参考資料をご覧ください。
この記事はあくまでアプリを開発してKubernetesにデプロイする

元記事を表示

RTA in Japan 2019のNodeCGレイアウトを動かしてみる

# はじめに
[RTA in JapanのNodeCGレイアウトを動かしてみる](https://qiita.com/pasta04/items/d676d9c2fb716176f665)で起動までの道のりを解説しましたが、RTA in Japan 2019 Online以降のバージョンでセットアップ手順が変わったのでその解説です。
なお、差分以外の説明は適当なので前回の記事も参照してください。

## この記事の目標
ローカル環境でRTA in Japan 2019のNodeCGレイアウトを動作させる。

# 事前に用意するもの
前と同じなので省略。Node.jsとyarnくらいは入れておいてください。

# gitからダウンロード
コンソールで以下を実行。

“`
git clone https://github.com/RTAinJapan/rtainjapan-layouts.git
“`

git入れてない人はZIPファイルで直接ダウンロードしてもよいです。
![git.png](https://qiita-image-store.s3.ap-northeast-1.am

元記事を表示

electron, reactでツールを作ってみた時に役に立ったリンクまとめ

# Electron

## memory leak
– [node.js – possible EventEmitter memory leak detected – Stack Overflow](https://stackoverflow.com/questions/9768444/possible-eventemitter-memory-leak-detected)

## chrome extension
– [MarshallOfSound/electron-devtools-installer: An easy way to ensure Chrome DevTools extensions into Electron](https://github.com/MarshallOfSound/electron-devtools-installer)

## module
– [app.getAppPath() problem · Issue #7094 · electron/electron](https://github.com/electron/electron/iss

元記事を表示

Docker-composeを使ってnode.jsの環境構築をしてみたのよ。

#Docker-composeを使ってnode.jsの環境構築をする。
こちらが前回の記事。
[Dockerについて基本的なことなぞってみたのよ](https://qiita.com/art_porokyu/items/bb96db922bf1e5742036)
こちらでDockerの基本的なことをなぞったので今回はdocker-composeを使っていこうと思います。

##docker-composeとDockerfileどう違う?

docker-composeはdocker-compose.ymlの記述を`docker-compose`コマンドを使ってdockerイメージを作成します。
Dockerfileは`docker build`コマンドでdockerイメージを作成します。

**Dockerfile**・・・docker image作成手順
**docker compose**・・・複数のコンテナのアプリケーション定義を記述でき、それぞれのコンテナのdocker imageを作成できる。

まずDockerの考え方として
![messageImage_157795353

元記事を表示

DialogflowでGoogle Homeの挙動をカスタムする

#目的
先日、YouTube Premium特典でGoogle Nest Miniを無料で頂いちゃいました!
早速ルンバやら電気やら色々連携して楽しんでいたのですが、やはり挙動をカスタムしてみたくなりまして…。
Dialogflowを使えばそこそこ簡単にできそうだったので、備忘録として残します。

注記:DialogflowはちょこちょこWebページのUIが変わるっぽくて、ネット上の記事を漁っていても全然違う画面で大変でした。これを読む頃にはまた変わっているかもしれません!

#やりたいこと
2つのことをやってみたいと思います。

* DialogflowのIntent機能を使って簡単なレスポンスを構築する
こちらに関してはほぼコーディング不要です。

* DialogflowのIntent機能+Webhookで簡単なレスポンスを構築する
上とやりたいことは同じですが、あえてコードを書きます。これによって外部サービスを呼び出すなど、幅が広がるでしょう。

#前提

* Google Home(またはGoogle Home mini、Google Nest mini、Google

元記事を表示

OTHERカテゴリの最新記事