Node.js関連のことを調べてみた2019年12月24日

Node.js関連のことを調べてみた2019年12月24日
目次

【ヒーローズ・リーグ 駅すぱあと賞受賞】みんなの現在地から集合場所を決めてくれる機能、他。飲み会幹事おたすけ LINE BOT 「鯨飲くん」を作った

# はじめに
飲み会幹事の仕事って、なかなか大変ですよね。
みんな飲み会はやりたいけど、幹事はやりたくない。そんな幹事の負担を少しでも軽減してくれるサービスがあったら、もっと気軽に飲み会を開催できるようになって、みんなの繋がりをより広く、深くできるのではないか…
そんな思いを形にした LINE Bot「鯨飲くん」を作りました。

ProtoPedia はこちら。
>https://protopedia.net/node/1899

この作品はヒーローズ・リーグ 2019 のハッカソン予選で制作したものです。ありがたいことに、「駅すぱあと賞」を頂くことができました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154885/d7067d29-5ff4-617b-35e2-4b8014c3db21.png)

2日間のハッカソンを通しての制作プロセスや、制作時にやってよかったこと、反省点などを後半でご紹介いたします。

# 作ったもの
LINE のグループチャットに参加させて利用する LI

元記事を表示

obnizOS 3.0.0でobniz-nobleを使って周囲のBLEデバイスを探してみる

#obnizOS 3.0.0がリリースされました。
新バージョンではBLE機能が強化されている印象を受けました。

##手持ちのobnizBoardで新機能を試してみたい。
Node.jsでobniz-nobleを使ってをobnizで周辺にあるBLEデバイスを検索してみる

“`
npm i obniz-noble
“`

“` server.js
‘use strict’;
const express = require(‘express’);
const PORT = process.env.PORT || 3000;
const app = express();

var obnizNoble = require(‘obniz-noble’)
var noble = obnizNoble(“OBNIZ_ID_HERE”)

noble.startScanning(); // any service UUID, no duplicates

noble.on(‘discover’, function(peripheral) {
console.log(‘発見したデバ

元記事を表示

ラズパイ4とGStreamerでストリーミングサーバーを作ろう

## やること

ラズパイ4にカメラをつけてストリーミング配信の環境を作ります。 ラズパイに付けられるマイクがなかったので、音声なし映像のみです。

## 参考

– [ラズパイを映像展示用デバイスにした話](https://qiita.com/zgw426/items/61949d7802bebaaee941)
– ラズパイにNodejsインストール
– [[メモ]video.jsでHLS配信をやってみた](https://qiita.com/t114/items/c7fdffaa2e7fdf406a7b)
– Video.jsの使い方
– [Raspberry Pi + Node.jsでSkyWayを動かしてみる](https://qiita.com/n0bisuke/items/7b8907fbcb7c

元記事を表示

StreamでBuffer.concatしない冴えたやりかた

## はじめに

この記事は [Node.js Advent Calendar 2019](https://qiita.com/advent-calendar/2019/nodejs) の 24 日目です。

> https://twitter.com/yosuke_furukawa/status/1201778011286065153
> Yosuke FURUKAWA @yosuke_furukawa
> なんだこの誕生日アドベントカレンダーは / “Node.js Advent Calendar 2019 – Qiita”
> 午後5:19 · 2019年12月3日·はてなブックマーク

最初誕生日カレンダーみたいになってたので、ネタ記事書こうかなーと思ってたら案外真面目な記事ばかりで、真面目に書くことにしました。
*(そう、私は12/24生まれです!{クリスマス,誕生日}{ケーキ,プレゼント}はいつも一つ。)*

## StreamでBuffer.concatしない冴えたやりかた

一般的にStreamを扱う時は `on(“data”, …)` で処理することが多いと思いま

元記事を表示

MacにNode.jsをインストール(anyenv + nodenv編)

# プロジェクトごとにNode.jsのバージョンを管理できる!?
っていう話を聞いたのでnodenvをインストールすることにしました。
nodebrewだと`nodebrew use [バージョン番号]`みたいに切り替えるのが~~めんどくさくて~~大変で。
nodenvだと簡単にできるっぽいのでこっちを使ってみます。
いろいろなプロジェクトに関わってくるとこういうのがすごくありがたい。
開発者の方に感謝です。

# インストールの流れ
1. Homebrewのインストール
1. anyenvのインストール
1. nodenvのインストール
1. Node.jsのインストール

### ・Homebrew
HomebrewはMac用のパッケージマネージャ。
ツールのインストールとか諸々を管理してくれます。
http://brew.sh/index_ja.html
nodebrewをインストールするためにHomebrewを使います。

### ・nodenv
順番前後しますが、これがメイン。Node.jsのバージョン管理ツール。
https://github.com/nodenv/node

元記事を表示

備忘録 Node.jsでexportsを使ったモジュール化の作り方

Node.jsには、モジュール化といってさまざまな機能を持ったプログラムを個別のファイルに分割することができる。

効率よくコードを管理できるだけでなく、さまざまなユーザーが作成したプログラムを再利用しやすくできる。

Node.jsにはこのようなモジュールを管理できるツール「npm」や「yarn」等がある。

#「exports」
基本的なモジュール化の方法として「exports」がある。

exportsを使うと、指定した値を外部のNode.jsファイルから読み込んで再利用することができるようになる。

>**exports.プロパティ名 = 値**

この値は文字列・数値・配列・オブジェクト・関数など、さまざまなものを設定できる。

>**exports.str = ‘こんにちは’;**

>**exports.obj = {
name: ‘メロン’,
price: 500,
store: ‘東京店舗’
};**

>**exports.func = function() {
console.log(‘exportsの関数’);
};**

#「module.ex

元記事を表示

Macでyarn installしたらnode-gypのエラーが出た

# どうした

既存のプロジェクトの手直しをしようとして、ローカルにnode_modulesを入れたかったので以下のコマンドを実行したらエラーが出た。

“`
yarn
//yarn install の短縮形
“`

エラーは以下。

“`
Command: node-gyp rebuild
Arguments:
Directory: /Users/user/.ghq/github.com/hppRC/gatsby-firebase-sample/node_modules/fsevents
Output:
gyp info it worked if it ends with ok
gyp info using node-gyp@5.0.5
gyp info using node@13.2.0 | darwin | x64
gyp info find Python using Python version 2.7.16 found at \”/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Pyt

元記事を表示

Node.js で stream を使って gzip ファイル全体をメモリに乗せずに先頭一行だけを取得する

この記事は [Node.js アドベントカレンダー 2019](https://qiita.com/advent-calendar/2019/nodejs) の 23 日目です。

## はじめに

gzip ファイルなどの圧縮されたファイルを読み込む際、たとえば csv など圧縮率の高いファイル形式かつ大きなファイルの場合、全てをメモリに乗せ切れないことが稀にあります。
そもそも csv のカラムだけ欲しいなどの場合にデータ全体を取得するのは時間もかかるし無駄です。
そこで、 Node.js は stream を扱いやすい言語なので、これを使って簡単に解決できるため紹介します。

なお、 S3 からのデータ取得であっても `createReadStream()` すれば `stream.Readable` 型になるため、同様の手法が可能です。そもそも、この話自体がローカルよりはクラウド絡みの方が多いケースになると思いますが……。

## おさらい: Node.js での stream でのファイル読み書き

例えば、ファイルを読み込んで標準出力に表示します。

“`typescri

元記事を表示

toioで生き物っぽい何かを作ってみた

ご覧いただきありがとうございます。
この記事は[SB-AI Advent Calendar 2019](https://adventar.org/calendars/4324)の18日目の記事となります。

#はじめに
突然ですが皆様は「人工生命」と聞いてどんなものをイメージしますか?
SFに出てくる怪物のようなイメージを持つ方も多いかもしれませんが、家を掃除してくれるルンバも人工生命の一つと言えます。
「人工生命」は国際的には「ALIFE」という名称で世界各国で研究が進められており、人工的に生命を作る事を通じて生命とは何かを理解しようとする研究分野の事です。

私はこの分野の研究者でもなんでもない、ただのサラリーマンですが、仕事でロボットに関わる機会が多く、
また昨年ALIFE関連のハッカソンに参加しチームで作品を作った経験から、プライベートで「人工生命」を1つのテーマとしてモノづくりをしております。
(嬉しい事にチームで作った作品が、今年の文化庁メディア芸術祭のアート部門で[審査委員会推薦作品](http://festival.j-mediaarts.jp/works/art/mo

元記事を表示

思いもよらないものをnpm publishしてしまった話(前任者の顔写真など)

スクリーンショット 2019-12-23 0.06.32.png
俺「すっげぇいい名前のライブラリ思いついた!!」

俺「npm あるかな?あるかな?」

(カタカタ)

俺「なかった!よっしゃ一番乗りや!!!今すぐ作らないと!!!」

俺「`npm init` enter enter enter enter `npm publish` うおおおおおおおいっけぇぇぇ!!!!!!!」

(カタカタカタカタカタカタカタカタッターン)

俺「ミ゜ッ!」

ーーー

おはようございます。[本番環境でやらかしちゃった人 Advent Calendar 2019](https://qiita.com/advent-calendar/2019/yarakashi-production)の 23 日目を担当する、[@sandessO

元記事を表示

迷惑メールを一掃するため,ドメインホワイトリストを作成した

みなさん,迷惑メールで苦労していませんか?

私は苦労しています.年末の大掃除ということで,迷惑メールを一掃してしまいましょう.

## 状況

キャリアメールに毎日,5〜10 通程度の迷惑メールが着弾します.有料の迷惑メールブロック機能を使用しているのですが,ブロックできるのは 5 割程度で,何通かは私のスマホの着信音を鳴らしてしまいます.

現在個人で利用しているメールアドレスは Gmail のもので,キャリアメールはほぼ使っていません.LINE や Twitter などの SNS 全盛の今(インスタ?TikTok?何それ,おいしいの?),使用するのは家族とのやり取りのみで,他には携帯メールのアドレスでなければ登録できないサービスや,かなり昔に登録したサービスのものがたまに届く程度です.

もはや,受信するメールのほとんどが迷惑メールという状況です.1 年前くらいまではほどんど迷惑メールなんてこなかったのに,なぜほとんど使わないアドレスに急に届くようになったのでしょう.どこかが個人情報流出させたのでしょうか?

## 対応方針

使っていないメールアドレスとは言っても,全く使ってい

元記事を表示

[Netlify Formsと連携]AWS Lambda上にGmail自動返信スクリプト(Node.js)をデプロイしAPI化。

Gatsby.jsを使用しNetlifyにデプロイするプロジェクトを進行していたところ、お問い合わせフォームの作成に手間取ったため備忘録。
##前提
対象読者は、
・node.jsの使用経験はそこそこある。これは必須です。
・lambdaの存在と癖の強さをある程度把握してる。若しくは、どんな癖でもかかってこいという精神がある人。
・api gatewayとlambdaの連携を行ったことがある。若しくは、自力でどうにかできる自信がある人。
を満たしていれば、全員できると思います。

##参考サイト等
・[詳しい。ここに従えば基本大丈夫(英語です。)](https://medium.com/@nickroach_50526/sending-emails-with-node-js-using-smtp-gmail-and-oauth2-316fe9c790a1)
・[わかりやすい。コード以外はここに従えば大丈夫(日本語です。)](https://gist.github.com/neguse11/bc09d86e7acbd6442cd4)

##環境セットアップ
1.netlify forms

元記事を表示

node/js向け husky使ってpush前にテストするを共有する

テストや静的コード解析実行前にうっかりpushしてしまう事はないでしょうか?

有意義レビューの為にも事前にテストを実行し、リモートにはテスト通ったコードしか置かないようにしたいですね。

[githooksのpre-push](https://git-scm.com/docs/githooks#_pre_push)を利用したpush前に必ずテストし、失敗したコードはpushできない状態を作る事ができます。

## githooksのpre-pushを利用したpush前テスト

`.git/hooks/pre-push` に実行したいコマンドを書きます。 `pre-push` は `git push` の前に実行されるフックです。

ほとんどのテストコマンドは、すべて通った場合に終了コード `0` を、失敗した場合に `1` などの0以外を返すようになっています。

`0` の場合にのみ `git push` が実行できるようになります。

“`
$ cp .git/hooks/pre-push.sample .git/hooks/pre-push
$ chmod +x .git/h

元記事を表示

文言のビルド失敗

## はじめに

[前回](https://qiita.com/libru1/items/cf253f64ff88f7afa1dd)

コマンドラインから実行しました
READMEの通りに出来ず、そのレベルに達してないようですが、くじけず進めていきます

## 実行
usageによるとレンダリングが出来そうなので実行

“`sh
node ./build/wenyan.js —render ./examples/helloworld.wy
“`

エラー発生
/dev/stdoutにアクセス出来ません

windowsだからありません
リダイレクトしてみる

“`sh
node ./build/wenyan.js —render ./examples/helloworld.wy > ./renders/helloworld.svg
“`

エラー変わらず

残念

## ビルド
それぞれのプラットフォーム用にビルドが必要なのかな。

Makefileを見て実行

“`sh
cd tools
node ./make_cmdline.js
“`

エラー発生
また/dev/~

元記事を表示

Alexa+lambdaでスマート(じゃない)ホームスキルをつくる

はじめまして@ufoo68です。今回はAWSのアドベントカレンダーにお邪魔させていただきました。

# はじめに
[このアドベントカレンダー](https://qiita.com/advent-calendar/2019/lambda)に登録したきっかけは最近[re:invent2019](http://reinvent.awseventsjapan.com/)に参加した経験からです。普段はあまりAWS関係の記事は書いたりしないのですが、せっかく大きなイベントに参加したのでlambdaについて書いてみよと思った次第です。イベントの発表を聴いて気に入ったサービスについては[この記事](https://qiita.com/ufoo68/items/1012e81255e1ae6b338a)でまとめました。今回はその中のAlexaに挑戦してみようと思い、思い切って[Echo Show 5](https://www.amazon.co.jp/Echo-Show-5-%E3%82%A8%E3%82%B3%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%BC5-%E3%82%B9

元記事を表示

文言コマンドライン実行

## はじめに

[前回](https://qiita.com/libru1/items/dab052c175fd40e2d912)
サンプルプログラムを実行しました。

[ReadMe](https://github.com/LingDong-/wenyan-lang)を読み

コマンドラインで動かしてみます

## 実行

chmod +xは出来ないのでそのまま実行

“`sh
./build/wenyan.js
“`

JScriptエラー発生!

JScriptとはwindowsのスクリプト、wshだそうです

“`sh
node ./build/wenyan.js
“`

usage引数の一覧出て来ました
実行出来そうです。

## おわりに

引数にrenderがありました
次はsvgファイル作ってみます

元記事を表示

ESLint v6.8.0

前 [v6.7.0](https://qiita.com/mysticatea/items/377b6ca6558dc253159b) | 次 (未定)

ESLint `6.8.0` がリリースされました。
小さな機

元記事を表示

【Cypress】~7選~ CypressでE2Eテストするときはまずこれ読んどけって話

この記事は[Ateam Hikkoshi Samurai Inc. & Ateam Connect Inc.(エイチーム引越し侍、エイチームコネクト) Advent Calendar 2019](https://qiita.com/advent-calendar/2019/hikkoshi) 24日目の記事です。

本日はエイチーム引越し侍中途入社3年目、自称爆速Webエンジニアの加藤が担当します!

みなさんE2Eテスト書いてますか??
引越し侍では10年以上続くレガシーシステムにテストが充実していないというカオスな現場があります。

とりあえずこのプロジェクトでリリースしたらここのCVチェックをしようという
力技で確認し続ける日々…

くそぅ!新規サービスではテストを書いているのに!
レガシーシステムにはテストも入れられないのか!

# E2Eテスト導入への障壁
一度うちのエンジニアの神様がE2Eを導入しかけたんですが、
ABテストとかに対応するのめんどくさいとのことでなかなか拡充していかなかったんですよね
その姿を見た僕は「めんどくさいんだろうなぁ」と指をくわえて見てましたが、

元記事を表示

ディススレイがOFFになったらRaspberryPi経由でTV電源をOFFにしたい

BRAVIA X9500Gを最近買ってHDMI経由でPCと接続しているのですが、このテレビにはPCからの入力がOFFになったときに、自動的にTV電源がOFFになる機能がありませんでした[^1]。
そこで、2年前くらいに買って転がっていたRaspberry Pi Zero WHを使ってRaspberry Pi経由で電源OFFを試してみました。

## 方針

### TV操作について

HDMI-CECを使ってTVを操作します。
残念ながらPCについているHDMIからではHDMI-CEC信号を送れないことが多いらしく、対象のPC(NVIDIAグラボ)でも送れませんでした。
Raspberry PiはHDMI-CECを使えるようなので、HDMIでTVに接続してcec-clientを使ってTVを操作します。

cec-clientをインストールしておけば、`echo “standby 0” | cec-client -s -d 1`コマンドでTV電源をOFFにできます。

### モニタOFF検知について

PCはWindows 10なのですが、簡単に検知する方法はなさそうでした。
Win

元記事を表示

Slack Appを無料で運用する(Netlify Functions)

#背景

前回はSlack Advent Calendar 2019 6日目として、Microsoft TeamsとSlackの比較記事を投稿しました。
https://qiita.com/hide2018/items/d410b16d75d190ae4271

今度はSlackに焦点を当て、ワークフロービルダーについて書こうとしました。
しかし無料プランでは使えませんでした:frowning2:残念
https://qiita.com/kazushi_iizuka/items/5cd9c3bb0bde9803cac0

そこで無料で使えるSlack Appについて書きます。
以下の記事が良いなと思ったので自分でも作ってみます。

(記事1)
社内slackにVIPチャンネルを作った話
https://qiita.com/peisuke/items/80984db8b47cd8243019

ただAWS Lambdaは無料枠があるものの、クレジットカード登録が必要です。
https://aws.amazon.com/jp/aws-jp-faq/prospects/

>アカウント作成お

元記事を表示

OTHERカテゴリの最新記事