Node.js関連のことを調べてみた2021年10月28日

Node.js関連のことを調べてみた2021年10月28日

express-generatorで作成したプロジェクトでTypeScriptを使用する

今回は、express-generatorでプロジェクトを作成し、一部でTypeScriptを使用できるように環境構築を行います。

express-generatorを使用してプロジェクトを作成するまでは、下記を参照ください。

https://qiita.com/shintaro_secual/items/b6e561c1255e4146eeaa

あらかじめ、npm、node、express-generatorをインストールしている前提で記載させていただきます。

## 環境
■ Nodeのバージョン
v14.14.0
■ 使用OS
MacOS Big Sur:バージョン11.6
■ 総合開発環境
Visual Studio Code

## プロジェクト作成

“`
% express –view=ejs types

create : types/
create : types/public/
create : types/public/javascripts/
create : types/public/images/
create :

元記事を表示

Line Botへ現在の天気を表示 ~天気APIを使用しLINE BOTへ自動返信~

LINE Botの勉強を始め、おうむ返し は作れました。更に応用することを考えたときにAPIとの連携ができることを知り、作ってみました。

下準備
 ① まずはこちらの記事を参考にLine Botを作る。
    おうむ返しまで完了させる。
     https://qiita.com/n0bisuke/items/ceaa09ef8898bee8369d
 ② obnizを扱うので、Visual Studio Codeのターミナルに、npm install obniz
   (今後マトリックスLEDを扱うならば npm install canvas も)を入力し
    実行しておく。
 ③ obnizスターターキットの用意
    obnizの端子にパーツを接続
      LED信号:gnd:0, green:1, yellow:2, red:3

実行
  Visual Studio Codeに、以下のコードを入力し、各サーバーを立ち上げ、
  LINE Developersの設定を行う。

 ①ターミナルに、
  cd mylinebot  を実行(mylinbotフォルダ内

元記事を表示

「あけちゃダメ」って書かれてて、開けたら反応する箱を作りたい。(未完)

#子どもが大好きな「ぜったいにおしちゃダメ?」
子どもが大好きな絵本の一つが、こちらの「ぜったいにおしちゃダメ?」です。

https://www.ehonnavi.net/ehon/116213/%E3%81%9C%E3%81%A3%E3%81%9F%E3%81%84%E3%81%AB%E3%81%8A%E3%81%97%E3%81%A1%E3%82%83%E3%83%80%E3%83%A1%EF%BC%9F/

子どもに限らず、「押しちゃだめ」と言われれば押したくなるし、「開けちゃダメ」と言われれば開けたくなるって気持ちがわかる方は多いと思います。

そこで今回、obnizとLINE Bot、それに100均で買った箱を用いて、開けちゃいけない箱を開けたら光って音が鳴り、さらにLINEにお知らせがくる仕組みを作ろうと思いました。
が、エラーがクリアできずLINE Botとの連携はできませんでした。

#環境
**ソフトウェア**
Visual Studio Code v1.60.2
Node.js v16.10.0

**ハードウェア**
[obniz Board 1Y](https

元記事を表示

サザン聴きながらobnizで製作を進めていたら、バグが発生したので助けていただきたいです。

![サザン.001.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2100048/786407a5-4dff-55b4-b02f-0324293e3a2d.jpeg)

タイトルの通り、サザンを聴きながらobnizで製作を行なっていたところ、奇妙な挙動を示すようになってしまいました。ちょっと行き詰まってしまったのでご意見いただけると助かります。

#今回のプロダクト
![IMG_F7C8B1E8B04C-1.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2100048/3b8a15fc-70a0-694e-a798-3ae123234e26.jpeg)

IoTセンサーを活用してLINE Botの機能を拡張しようとしています。

#環境・デバイス
>[obniz Board 1Y](https://obniz.com/ja/products/obnizboard)
[圧電スピーカー](https://obniz.c

元記事を表示

ママのテンション爆上げ!? obnizで娘からママへX’masプレゼント

## ママもX’masプレゼント欲しい!

 と、いうことで「子供からどんなプレゼント欲しい?」とママにヒアリング。

 その結果・・・

 **「ここまで育ててくれてありがとう」と子ども言われたい!**

 ママならでは。「パパからは何が欲しい?」なんて聞く訳もなく作業開始。

## 成長 × 感謝 = 身長が伸びた × 感謝の言葉

 obniz×LINEbotを組み合わせて

:::note
①LINE×obniz距離センサーで「娘が自分で」身長を調べる
②マトリックスLEDでメッセージを流し 子供からママに言ってもらう
:::

 obnizの完成形はこちら

 obniz×距離センサー×マトリックスLED をカチューシャにくっつける

![かちゅーしゃ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1793443/410bd52b-f2c5-b223-601e-024743e2cfa4.png)

 親が身長を測っても面白くないので、LIN

元記事を表示

おうちでディズニーパレードがはじまる前のワクワクを感じる方法

:::note warn
今回も投稿主の重度のディズニーヲタク(=Dヲタ)ぶりにより、例によってDヲタ用語が飛び出しております。
注釈をつけておりますのでご活用ください。
:::

2021年11月1日からTDL[^1]にEパレ[^2]が帰ってきますね。
(参考:[東京ディズニーランドⓇ/東京ディズニーシーⓇの運営について](https://media2.tokyodisneyresort.jp/home/tdr/news/release/release2110.pdf))
パレード自体が楽しいのはもちろんですが、**パレードを待っているときのワクワク感**ってよくないですか??

緩和してきたとはいえ、なかなかディズニーに行けない!だけど何かでワクワクはしたい!
そんな方向けに、**おうちでもパレードがはじまる前のワクワク感**を感じられる装置を作りました。

そして、忘れていませんか?あの地蔵[^3]の感覚。
厳しい寒さ、暑さに耐えうるためにも、今のうちに地蔵開始時の気温や明るさを自宅にいる時から把握しておきましょう。

色々と書き

元記事を表示

Express + sequelize でCRUDアプリを作る

# 前回の記事の続きです
こちらの記事を元にCRUDアプリを作っていきます。

https://qiita.com/joruju2248/items/225000ad903598204f7f

# ejsをインストール
これでejsファイルが使えるようになりました。

“`
$ npm install ejs –save
“`

# ディレクトリ直下のapp.jsを修正

以下のようにしてください。コピペで大丈夫です。

“`app.js
var createError = require(‘http-errors’);
var express = require(‘express’);
var path = require(‘path’);
var cookieParser = require(‘cookie-parser’);
var logger = require(‘morgan’);
let db = require(“./models/”);
var app = express();

// view engine setup
app.set(‘views’, ‘.

元記事を表示

ドアモニターがないだと?代わりを作ればいいじゃない。

#我が家はポンコツ設計
我が家はショボ賃貸なので、ドアモニターがなくドアスコープでしが外の確認ができないのですが、設計がポンコツでドア前に人が立てず、ドアスコープから人の存在を確認するのがとても難しい…
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2122228/3110bb6b-3c6f-cecf-03ce-33a0a5bea2a6.png)
ついでに、インターホンが鳴ってドアを開けたのに人がいないという、ピンポンダッシュ(4階)が発生したり、胡散臭い勧誘が来たりするため、ドアを開けずに人がいるのか確認し、あわよくばドアを開けずにお帰りいただけけるツールが欲しい!
防犯のためにもむやみにドアを開けたくないし!!

#それなら作ってしまえ

![Screenshot_20211027-150706.png](https://qiita-image-store.s3.ap-n

元記事を表示

Gtk3アプリ NodeRedとC#を連携する 入門編

###Gtk3アプリ NodeRedとC#を連携する

####前提
Node.jsをインストールする
Node-Redをインストールする

https://nodered.jp/docs/getting-started/local

###NodeRedを入門動画で学ぶ

###Nodeを配置する

以下のノードをFlowに配置します。

| 使用するノード |
|:———–:|
| Inject node |
| exec node |
| Debug node |
Screenshot from 2021-10-27 15-59-05.pngHomebrew + anyenv + nodenv でNode.jsをインストール

転職とともにアウトプットする機会がガクンと減ってしまい、このままじゃまずいぞということで自分用に少しずつ記事を投稿していくことにしました。
今回はNode.jsのバージョン管理をnodenvで、nodenvの管理をanyenvでする方法をメモしていきたいと思います。

## 環境
macOS Big Sur 11.3.1

## 手順
1. Homebrewのインストール
2. anyenvのインストール
3. nodenvのインストール
4. Node.jsのインストール

## Homebrewのインストール
https://brew.sh/index_ja

まずはHomebrewをインストールしてきます。
HomebrewとはmacOS上で動作するパッケージ管理システムです。(windowsでは動作しません)
パッケージ管理システムとは、各種ソフトウェアのインストールやアンインストール、また、ソフトウェア同士やライブラリとの依存関係を管理してくれるシステムのことです。
どこが便利なのかというと、ブラウザなどから直接ダウンロード → インストールをしてくると、最新バージョン

元記事を表示

aws lambda + nodejs + mysqlのスピンアップ

AwsLambda + nodejs + mysql + ORMごとのInit Duration比較

# 環境
– nodejs 14.x
– メモリ 1024GB
– DB接続 => 1行取得 => 切断
– 試行回数 それぞれ3回くらい
– serverless framework 使用
– typescript 4

# 結果

| ライブラリ | InitDuration |
| —- | —- |
| mysql2 | 270ms |
| sequelize | 470ms |
| typeorm | 780ms |
| prisma | デプロイ出来んかった |

typeorm入れただけでけっこー重くなるの、ツラミがある。
typeormは、mysqlだけ使いたくてもpostgresql/oracle/sap/mongodbとか色々なコードが入ってしまうため、重くなってる模様。

Webpack Bundle Analyzerを見た感じだとprismaが非常にコンパクトだったので、期待したい。

元記事を表示

JavaScript(Node.js)での標準入出力について

###JavaScript(Node.js)での標準入出力について

PaizaのスキルチェックやAtCoderで使う、JavaScript(Node.js)での標準入出力についてまとめてみました。

## 1. fs.readFileSyncを使った方法

“`js
// 入力
// 30 1 3
// 40 56
// 160 90 53
// 6000

const lines = require(“fs”).readFileSync(0, “utf8”).replace(/\n$/, “”).split(/\n/);
console.log(lines);

// 出力
// [ ’30 1 3′, ’40 56′, ‘160 90 53’, ‘6000’ ]
“`
あとはsplit()で各行を分割するなりお好きに

## 2. readlineを使った方法

“`js
// 入力
// 30 1 3
// 40 56
// 160 90 53
// 6000

process.stdin.resume();
process.stdin.setEncoding(‘utf8

元記事を表示

Google Photosからランダムな1枚の画像を取得できるようにする

前回の投稿 [GoogleAPIライブラリを使わずにGoogleアカウントでログインできるようにする](https://qiita.com/poruruba/items/0f99400d178c4497f79b) で、とりあえず、Google Photos APIにアクセスする準備として、Googleアカウントでログインできる環境を作りました。

今度は、ログインしたアカウントのGoogle Photosの画像リストを取得して、ランダムに選択した画像を取得できるようにします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261826/56364c9a-89ec-5654-9097-a9c6a9d4323a.png)

ソースコードもろもろは前回同様以下にあります。

poruruba/GooglePhotosGallery

https://github.com/poruruba/GooglePhotosGallery

#Google Photos APIを利用できるようにする

元記事を表示

obniz feat.BAIKIN-MAN!

##パパの目論見##

うちの次女はアンパンマンが大好きでバイキンマンが大嫌いな典型的な2歳児なのですが、

ガチャポンで出てくるのは、決まってバイキンマンだったりします:joy:

今回の企画はバイキンマンを使ったおもちゃを作り、
娘に~~好きになってもらおう~~バイキンマンを克服してもらおうというものです。

逃げる者を追いたくなるのは人間の性でしょうから、近づいたら逃げるバイキンマンを作ります。
###名付けて、「BYE-BAIKIN-MAN!!」###
obnizを手に入れたので、いざトライ!

##試作品##

超振動距離センサとサーボモーターを組み合わせて、動力にしたいと考えました。

この超振動を使えば、地面を叩いてやつらは動くはずである!これは期待できそうだ!

##完成品「BYE-BAIKIN-MAN?」

https://twitter.com/taka_xedge/status/14528

元記事を表示

node.jsでHIITのTimerを作った

フィヨルドブートキャンプのプラクティスでnpmを自作しました。
せっかくなのでqiitaで公開させてもらおうと思ったので、勇気を出して書かせてもらってます。

「もっとこうした方がいいんじゃない?」などのご意見がありましたらコメントしてもらえると嬉しいです!

## どんなnpmを作ったのか
作ったnpmは、最近流行りのトレーニング手法である**HIIT(High Intensity Interval Training)のタイマー**です。

> [話題の筋トレ「HIIT」とは?](https://www.s-re.jp/magazine/health/102/)
HIITとは、「High Intensity Interval Training(高強度インターバルトレーニング)」の略で、負荷の高い運動と小休憩を繰り返すトレーニング法のこと。限界まで体を追い込むことで、常に脂肪が燃焼しやすい状態をキープし、体脂肪減少と筋肉増量効果を得るものです。

**実際に作成したnpmはこちらで確認できます↓**
– npm:[hiit_timer](https://www.npmjs.com/p

元記事を表示

LINE Botに格言を表示

[前回](https://qiita.com/tomosukesan/items/738468d8e6fd1576f615)の記事ではobnizに格言を表示しました。

今回は格言を表示してくれるLineBotを作成しました。

##流れ
まずはこちらの記事を参考にLine Botを作ります。
おうむ返しまで完了させます。

https://qiita.com/n0bisuke/items/ceaa09ef8898bee8369d

`server.js`を変更するので一度、`control + C`で`node server.js`を終了させます。

mylinebotフォルダの直下で
`npm i axios`を実行します。

そうすると`package.json`の中に`axios`が追加されます。

`server.js`ファイル内の`’use strict’`の次の行あたりにAPIを叩くための呪文`const axios = require(‘axios’);`を記載。

コード終わりの方の`//実際に返信の言葉を入れる箇所`のところに表示させたいAPIの情報を記載。

元記事を表示

CHIRIMENをNode.jsで使用してみる⑵ ー GPIO編 ー

## はじめに
本記事では、複数回に分けてCHIRIMENコミュニティが提供しているnpmパッケージnode-web-gpioとnode-web-i2cを使用してNode.jsからGPIOとI2Cを制御するために私が実施した方法とそのサンプルコードを記載した備忘録になっています。
今回は[前回の記事](https://qiita.com/okojon/items/58726940ef51d1c4a74c)に引き続きExamplesにあるGPIO ExamplesのコードをNode.jsから実行可能にする方法について説明していきます。

## コードの主な違い
Webブラウザ版とNode.js 版でのコードの主な違いについて説明します。

– navigator()関数がNode.jsでは使用不可、記述する必要がないため削除する。
– sleep()関数がNode.js には存在しないため、使用する場合は適宜実装する必要がある。
– その他、HTML下では動作するがNode.js下では動作しない記法を変更する必要がある。
ex)下記GPIO-Buttonなどの”ledPort.w

元記事を表示

@google-cloud/connect-firestoreで保存されるセッションデータに作成時刻を追加する。

# まえがき
GAEでセッション管理にFirestoreを使うという内容のガイドがGoogleから公開されています。
[Firestore でのセッション処理  |  Node.js  |  Google Cloud](https://cloud.google.com/nodejs/getting-started/session-handling-with-firestore?hl=ja)

非常にわかりやすいのですが気になる事が一つ
> Connect-firestore は、古いセッションや期限切れのセッションを削除しません。Google Cloud Console でセッション データを削除するか、自動削除戦略を実装できます。セッションに、Memcache や Redis などのストレージ ソリューションを使用すると、期限切れのセッションが自動的に削除されます。

流石にコンソールから手作業で削除するのは面倒くさいので、古いセッションを自動で削除するようにしたい所。
要するにCloud MemorystoreやCloud SQLを使ってほしいということらしい。
しかしConnec

元記事を表示

Chrome-driver のアップデート

# 環境

“`bash
$ node –version
v15.3.0

$ npm list chromedriver
app@1.0.0 \app
└── chromedriver@2.46.0
“`
* Google Chrome バージョン: 95.0.4638.54(Official Build) (64 ビット)
* [Selenium](https://www.selenium.dev/ja/documentation/)

# npm run e2e 実行時にエラーになる

“`bash
$ npm run e2e

> app@1.0.0 e2e
> node test/e2e/runner.js

Starting selenium server… started – PID: 80376

[Login] Test Suite
======================

Running: Login
{ parser: “babylon” } is deprecated; we now treat it as { parser: “babel

元記事を表示

Azure Functions と LINE Notify の組み合わせ(Node.js を利用、ポータルで開発)

この記事は、[Azure Functions](https://azure.microsoft.com/ja-jp/services/functions/) に HTTPリクエストを送ると、LINEアプリに通知が来る([LINE Notify](https://notify-bot.line.me/ja/) を利用)という仕組みを軽く試したものです。

Azure Functions周りの開発や設定は、[Azure のポータル上](https://portal.azure.com/)で行いました。

## 手順の概要
今回の手順は、おおまかには以下のとおりです。

– LINE Notify のトークンを取得
– Azure のポータル上で Azure Functions を使えるようにする
– Azure Functions でのコーディング前の準備
– [axios](https://www.npmjs.com/package/axios) をインストール
– 環境変数を設定
– Azure Functions でのコーディング

## 実際に進めていく
### LINE

元記事を表示

OTHERカテゴリの最新記事