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

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

AWSサーバーレスのWebアプリケーションをもっと勉強する

いつも忘れないように、コンセプトから。

###コンセプト
・お金かけてまでやりたくないのでほぼ無料でAWSを勉強する
 →ちょっとしたサービスを起動すると結構高額になりやすい。
・高いレベルのセキュリティ確保を目指す
 →アカウントを不正に使われるととんでもない額を請求されるので防ぐ

昨日は[「AWS Lambdaで動的コンテンツ配信を考えてみる」](https://qiita.com/auf/items/061817b6ae05d9ccdfbc)をやってみたものの、実装はできるが画面(HTML)の実装がイマイチだなという違和感を感じていました。そこれ、[「さらに先日やってみたチュートリアル」](https://qiita.com/auf/items/74578049ef2f668f9d60)をもう一度見てみようと思ったんですが、これがなかなかハードです。ワークショップ関連のプログラムがセットになっていて、関連する部分が
`\aws-serverless-workshops-master\WebApplication\1_StaticWebHosting\website\js`

元記事を表示

Node.jsインストール備忘録

## 環境
– Windows 10 Pro
– WSL (Windows Subsystem for Linux)

## apt更新

“`
$ sudo apt update
$ sudo apt dist-upgrade
$ sudo apt autoremove
“`

## nvmインストール

“`
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
“`
最新:https://github.com/nvm-sh/nvm

## 最新化

“`
$ cd ~/.nvm
$ git pull origin master
“`

## 起動

“`bash
$ source ~/.bashrc
$ nvm –version
“`

## インストール可能なNode.jsの確認

“`bash
$ nvm ls-remote
“`

## Node.jsのインストール

“`bash

$ nvm install 12.16.3
“`

#

元記事を表示

Node.js(12.x)でfetchを使ってIFTTTのWebhooksへPOST【備忘録】

# Node.jsでfetchを使ってIFTTTのWebhooksへPOSTするには?
その通りの事をしたかったのだが、記事があまり見当たらなかった(検索が下手なのかも)ので備忘録として認めておく。
前提として、[IFTTTのWebhooks](https://maker.ifttt.com/use/)に登録し、キーとイベント名を持っている状態とする。

“`javascript
const fetch = require(‘node-fetch’);

const send2IFTTTWebHooks = async (j) => {
const key = “XXXXXXXX”;
const event = “XXXXXXXX”;
const options =
{
“method”:”POST”,
“headers”:
{
“Content-Type”:”application/json”
},
“body”: JSON.stringify(j

元記事を表示

mac で express, node, yarn のメモ (罠回避ルート)

# インストール

– homebrew を入れる。
– nodebrew を入れる。
– node を入れる。
– npm を update する。
– express を入れる。
– express-generator を入れる (必要なら)。

参考

– [install nodebrew, node and yarn](https://qiita.com/morikiyo/items/cd219a0b7aaed5b23d51)
– [NodebrewでNodeをインストールする](https://qiita.com/mame_daifuku/items/373daf5f49ee585ea498)

## homebrew

下記を参照のこと。
– https://brew.sh/index_ja

2020/4 時点では、ターミナルで下記コマンドでインストールできる。

“`
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)”
`

元記事を表示

ReactでTrixエディタを利用する

# 概要
標題の通りですが、ReactでTrixエディタを利用するための手順です。
WYSIWYGエディタの1種です。WYSIWYGエディタは、グラフィカルにユーザーが文章を記載する際に編集することができるエディタです。Wordpressの投稿画面があると思いますが、あれも一種です。そうは言ってもイメージが湧かないと思いますので次のリンクを見れば、あ〜これかとなるかと思います。[トリックスエディタ](https://trix-editor.org/)
ちなみに、Trixエディタは、Rails6からAction_textとして導入されましたね。

# ReactにTrixエディタを入れる

あまり複雑にするとわかりずらくなりますので、最小構成で書きます。
まず適当なプロジェクトを作成し、npmで用意されているTrixエディタをインストールします。

※ [Trixエディタのnpmサイト](https://www.npmjs.com/package/trix)

“`
npx create-react-app プロジェクト名
“`
できたプロジェクトに入り、Trixエディタのパッケージ

元記事を表示

Node.jsでLINE Notifyに画像を送るサンプル #protoout

Node.jsのaxiosを使ってLINE Notifyに画像を送るサンプルです。
探してもあんまりなかったので残しておきます。

## 準備

“`
npm init -y
npm i axios
“`

axiosのインストールを忘れずに。

## コード

imageFullsizeとimageThumbnailの箇所に画像URLを指定すればOKです。
適宜利用したい画像に変更しましょう。

“`app.js
const axios = require(‘axios’);
const qs = require(‘querystring’);

const LINE_NOTIFY_API_URL = ‘https://notify-api.line.me/api/notify’;

// GitHub Actions で実行する際に Secret 値 LINE_TOKEN を利用する
//
// 実際には、GitHub Actions の
// run: LINE_TOKEN=${{secrets.LINE_TOKEN}} node action.js
// という書き方

元記事を表示

LINEBotをみんなで作ろう〜Messageを分岐させるぞ編〜【GWアドベントカレンダー5日目】

この記事は下記の [#GWアドベントカレンダー](https://gw-advent.9wick.com/calendars/2020/72) の 5日目の記事になります。

1週間でサーバレスLINEBotを生み出す( @inoue2002 ) | GWアドベントカレンダー

# はじめに
こちらの内容は超初心者向けです。
[公式ドキュメント](https://developers.line.biz/ja/docs/messaging-api/overview/#messaging-api%E3%81%AE%E4%BB%95%E7%B5%84%E3%81%BF)を読める方はこちらをお読みいただく方が正確です。

[昨日の記事](https://qiita.com/drafts/35fab5b7901aa94fafd2)をご覧になってない方はぜひ。
こちらの記事はGWアドベントカレンダーを通してLINEBotをサーバレスで作れるようになろう!ということを目標に書いている記事です。

LINEBotでMessageを送る実装はした事あるけど、ユーザーが送ってきたMessageによって条

元記事を表示

WebRTCを実装してみた

# WebRTCとは
Web Real-Time Communicationsの略でWebブラウザにプラグインを追加することなく、リアルタイムにコミュニケーションを可能にする技術のことです。
# ネットワークトポロジー
WebRTCでの通信形態は以下3つあります。WebRTCを利用するアプリケーションの特性により何れかを選択することになります。
## P2Pタイプ
クライアント同士がそれぞれで接続する仕組みで、メッシュ型と呼ばれたりします。
※本記事もP2Pタイプで実装しています。
![トポロジー1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263269/56c98130-81ff-47fd-180c-9513742c4e85.png)
## MCU(Multipoint Control Unit)
通信を1本に統合する仕組みですが、中央サーバで暗号化を解き、動画や音声を合成し配信するのでCPUに大変負荷がかかります。ただし転送量は最適化されます。
![トポロジー2.jpg](https://qii

元記事を表示

GitHub Actionsから定期的にLINE Notifyで10分に一回狐の画像を送ってみた

プロトアウトスタジオで習ったことを総動員して、GitHub Actionsから定期的にLINE Notifyで1分に一回狐の画像を送るものを作ってみました。

ずっと学びたかったnode.jsデビューを果たせて嬉しい…

# 作るもの
10分に一回、狐の画像をLINEで送ります!
![IMG_5746.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480279/f0255c81-2709-4b09-c3bc-81ad9298917e.png)

## GitActionsとは
Gitにプロジェクトをプッシュするだけで、定期実行やpushをトリガーにした実行ができる機能。
初めて使いましたが、ものすごく便利ですね。

# 作業手順
## LINEのトークンを作成
こちらのページにアクセスし、マイページからトークンを作成。
https://notify-bot.line.me/ja/
発行したトークンはコピペしてどこかに控えてください。一度きりしか表示ができないので注意!!

## GitHubにリポジ

元記事を表示

LINEBotをみんなで作ろう〜色々なメッセージを送ってみよう編〜【GWアドベントカレンダー4日目】

この記事は下記の [#GWアドベントカレンダー](https://gw-advent.9wick.com/calendars/2020/72) の 4日目の記事になります。

1週間でサーバレスLINEBotを生み出す( @inoue2002 ) | GWアドベントカレンダー

# はじめに
こちらの内容は超初心者向けです。
[公式ドキュメント](https://developers.line.biz/ja/docs/messaging-api/overview/#messaging-api%E3%81%AE%E4%BB%95%E7%B5%84%E3%81%BF)を読める方はこちらをお読みいただく方が正確です。

[昨日の記事](https://qiita.com/drafts/dcf40d5ebfe2454796fa)をご覧になってない方はぜひ。
こちらの記事はGWアドベントカレンダーを通してLINEBotをサーバレスで作れるようになろう!ということを目標に書いている記事です。

LINEBotはおうむがえしぐらいはわかるけど、どんなメッセージが送れるのか知らんという方向けに書かれ

元記事を表示

AWS YAML の JSON パーサー

## 動機
AWS の設定ファイルは JSON より YAML 派なんだけど、設定ファイルを Node.js (JSON) で処理したい。

AWS 独自の組み込み関数が使われていて、そのおかげで便利なんだけど、普通のYAMLパーサーだと読めない。
(組み込み関数のドキュメントは [こちら][1])

そこで、組み込み関数を出来る限りエミュレートした専用パーサーを用意した。

## ソースコード
https://github.com/exabugs/aws-yaml

## インストール

“`
yarn add aws-yaml
“`

## 使い方

“`
import yaml from ‘aws-yaml’;
import fs from ‘fs’;

const buff = await fs.promises.readFile(‘template.yaml’, ‘utf8’);
const json = yaml.load(buff);

const { Resources } = json;
“`

## 使える関数

| full | sh

元記事を表示

Nuxt.jsのローカル開発環境でLIFFのデバッグをする方法

# Nuxt.jsのローカル開発環境でLIFFのデバッグをする方法

## はじめに

LIFFv2にはLINEログインの機能がありますが、ログイン後のリダイレクト先がLINEDevelopersで登録した`https`のURLに固定されてしまうため、ローカルでの開発が結構大変になります。
そこで、本記事ではローカル環境で簡単にLIFFのデバッグをする方法を解説します。

## 実行環境

– Nuxt.js v2.12.2
– macOS Catalina V10.15.3

## localhostに証明書を設定する

localhostをLINEDevelopersへ登録できるようにするため、localhostに証明書を設定します。

### mkcertをインストール

[mkcert](https://github.com/FiloSottile/mkcert)を使って証明書(自己署名)を生成します。

“`terminal
brew install mkcert
mkcert -install
mkcert localhost
“`

以下の証明書が発行されます。

元記事を表示

Mac OS Catalinaでnvmを利用してnode.jsのインストールができない

#症状
nvmを利用してnode.jsのインストールを行うと下記のエラーが出る。

“`
$ nvm install stable
mkdir: /alias/lts: Read-only file system
mkdir: /alias/lts: Read-only file system
mkdir: /alias/lts: Read-only file system
Downloading and installing node v14.1.0…
mkdir: /.cache/bin/node-v14.1.0-darwin-x64/files: Read-only file system
Binary download from https://nodejs.org/dist/v14.1.0/node-v14.1.0.tar.xz failed, trying source.
————中略————
grep: /.cache/src/node-v14.1.0/node-v14.1.0.tar.xz: No such file or dire

元記事を表示

CloudFunctionsで文字列をハッシュ化したいならcrypto

複雑な家庭の事情でどうしてもfirebase上のアプリで任意の値をMD5にしなければならなかったのでメモ。

nuxt上でなんか処理しようかとおもったがいいライブラリがなく、CloudFunctionsならNode.jsなのでcryptoモジュールが使えることに気づいた。

“`/functions/index.js
const crypto = require(‘crypto’);
const hash_ni_shitai_value = “ハッシュ化したい値”;
const hash_ni_natta_value = crypto.createHash(‘md5’).update(hash_ni_shitai_value).digest(‘hex’);
return hash_ni_natta_value;
“`

phpの`md5($str)`ほど短くはないけどこれが最短なのでは。

元記事を表示

node.jsでLINE Notifyを使ってみたよ

# 概要
webサービスやバッチ処理を作っていると、何かアクションがあった事をすぐに気づきたいと思うことがあるかと思います。
この通知がよく使うアプリに送られて来たら気づきやすいですよね!?

よく使うアプリは人それぞれかと思いますが、LINEは多くの人が利用しているかと思います。
そして、LINEでは個人で簡単に通知を投げられる機能 [LINE Notify](https://notify-bot.line.me/ja/) を提供しています。

ここでは、LINE Notifyのパーソナルアクセストークンでの通知をnode.jsを用いて行うまでの軌跡をまとめています。

# ざっと全体の流れ
手順はざっと以下な感じ。

1. LINE) パーソナルアクセストークンを取得
2. 開発) アクセストークンを使ってrequestを投げる
3. LINE) 通知が届いた事を確認

とても簡単!

# 手順
## 1. パーソナルアクセストークンを取得
LINEアカウントを持っていれば簡単に作れます。

### 1-1. LINE Notifyページへ遷移
以下URLよりLINE Notify

元記事を表示

package.jsonのpeerDependenciesMetaってなんだ?

# TL;TD

– `package.json`に記述するフィールドで、`peerDependencies` で定義したバージョンを満たしてなくても警告を出さなくするためのオプションを設定することができる (2020/05/03時点)
– パッケージを公開する人以外はあんまり気にしなくても大丈夫そう

# そもそも`peerDependencies` とは

`peerDependencies` は、ある`モジュールX`に対するインタフェースを持っており、`モジュールX`から参照されることを想定するが、`モジュールX`のどこまでにバージョン互換性を持っているかを表記したものです。

例えば `eslint-plugin-vue` は、 `eslint` でVueファイルを扱うためのプラグインですが、どのバージョンの `eslint` に対して互換性のあるプラグインなのかが`peerDependencies` に記述されています。

“`package.json
“peerDependencies”: {
“eslint”: “^5.0.0 || ^6.0.0”
}

元記事を表示

SIerフロントエンド・ディベロッパーのWindows10セットアップ

#はじめに

SIer所属のエンタープライズ系フロントエンド・ディベロッパーがWindows10端末を1からセットアップすることにしたため、SIer仕様の端末を作るために最低限必要なものをメモしておきました。

#ブラウザー
一通り入れましょう

– Firefox
– https://www.mozilla.org/ja/firefox/
– Chrome
– https://www.google.com/intl/ja_jp/chrome/
– Edge

#便利ツール
– Office 365
– 7-zip
– https://sevenzip.osdn.jp/
– Pleiadesが7-zipでないと解凍できない事に、、、
– Sakura Editor
– https://sakura-editor.github.io/
– docker

#ソースコード管理
– git
– https://git-scm.com/
– その後、sshコマンドで公開鍵を作成しましょう

#Java開発
– Java
– O

元記事を表示

【NodeJS】メール送信

###NodeJSがインストールされていることを確認。

“`
node -v
v12.16.2
“`

###nodemailerモジュールをダウンロード

“`
npm install nodemailer
“`

※バージョンを指定する場合

“`
npm install nodemailer@6.4.6
“`

###ダウンロード済みのモジュールを確認

“`
npm list –depth=0
`– nodemailer@6.4.6
“`

###メール送信スクリプトを作成

“`javascript:mail.js
“use strict”;
const nodemailer = require(“nodemailer”);

async function main() {

// create reusable transporter object using the default SMTP transport
let transporter = nodemailer.createTransport({
host: “example

元記事を表示

Node.jsでport 3000のプロセスを探してkillするDOS バッチファイル(Windows10)

環境: Windows10 (7でもokと思われ)
Node.jsの開発などで時折localhost:3000とタイプすると

“`DOS:error
Port 3000 is already in use
“`
と出て進まないとき、手動でプロセス番号を探してkillするのが手間なので、DOSバッチファイルにしました。

“`DOS:processkill.bat
FOR /F “delims=” %%i in (‘netstat -aon ^| findstr 0.0:3000’) do set NODEPORT=%%i
echo off
@REM 出力の最後がPORTを表しているので、末尾まで読んでいる
for %%a in (%NODEPORT%) do (
set TEMPB=%%a
)
echo %TEMPB%
taskkill /pid %TEMPB% /F
“`

実行法はコマンドプロンプトから

“`DOS:cmd
>processkill.bat
“`
だけです。

元は
netstat -aon ^| findstr 0.0:3000
で出てきたプロセス

元記事を表示

新版・中華製スマートプラグを node で制御する

[中華製スマートプラグを node で制御する](https://qiita.com/plageoj/items/04c8e5b2de230bf646e3) の記事はそれなりに閲覧があってありがたい限りなのですが、2020年5月に元の Github を見たところ、このセットアップ方法が deprecated になっていました。

そこで、2020年5月時点最新のセットアップ方法を改めて書いておきます。
元のセットアップガイドは [GitHubにあります](https://github.com/codetheweb/tuyapi/blob/master/docs/SETUP.md)。

# スマートプラグを API で叩きたい

Amazonで [スマートプラグ](https://www.amazon.co.jp/gp/product/B07QKTNFW9) を見つけたので購入してみました。

公式の言うところによると、こいつは Google Home / Alexa / IFTTT との連携が
可能とのこと(IFTTTのみ動作確認しました)。おうちハックがはかどりそうです。

セットア

元記事を表示

OTHERカテゴリの最新記事