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

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

世界初!「ラブライブ!」と「ワイルド・スピード」の聖地を教えてくれるLINEbot!

「ラブライブ!」大好き!「ワイルド・スピード」も大好き!
そんな欲張りさん向けにLINEbotを作りました。よかったら最後までご覧ください♪

#作品の背景
聖地巡礼が好きな私。ロサンゼルスにワイスピの聖地巡礼に行きたいと考えているものの、コロナで旅行も行けず・・・。

「ワイルド・スピード」シリーズは、スピンオフも含めて、これまでに9作品上映されているのですが、
3作目となる「ワイルド・スピードX3 TOKYO DRIFT」は、なんと東京が舞台!

東京なら巡礼できる!と思い、__ワイスピ聖地巡礼bot東京版を作ることにしました!!__

ところがどっこい!!
意気揚々と調べたものの、CGで作られていたり、すでに取り壊されていたりと、聖地情報が希薄・・・。泣

これではbotとして成り立たないので、大好きな「ラブライブ!」と組み合わせ、__世界初のコラボレーション__を実現しました。

#デモ動画

完成したものがコチラです!
位置情報を送ると、最寄りの聖地を教えてくれます。

Node.jsでGoogle Driveにファイルをアップロードする (Google Drive API v3)

Google Driveへのファイルアップロードも試してみます。

* 参考記事
* [Node.jsでGoogle Drive上のファイルを削除する (Google Drive API v3)](https://qiita.com/n0bisuke/items/a1b39635029242f31713)
* [Node.jsでGoogle Drive上のファイルをリネームする (Google Drive API v3)](https://qiita.com/n0bisuke/items/dcc7be337a555b018b19)
* [Node.jsでGoogle Drive上のファイルを指定フォルダに移動する (Google Drive API v3)](https://qiita.com/n0bisuke/items/8f108408a9e1067b9225)
* [Node.jsでGoogle Drive上のファイルを複製(copy)する (Google Drive API v3)](https://qiita.com/n0bisuke/items/6d73bb6e1

元記事を表示

Node.jsでGoogle Drive上のファイルをダウンロードする (Google Drive API v3)

1年くらい前にGoogle Drive関連の記事を書いてたけど、久々に触りたくなったので調査再開。

* 参考記事
* [Node.jsでGoogle Drive上のファイルを削除する (Google Drive API v3)](https://qiita.com/n0bisuke/items/a1b39635029242f31713)
* [Node.jsでGoogle Drive上のファイルをリネームする (Google Drive API v3)](https://qiita.com/n0bisuke/items/dcc7be337a555b018b19)
* [Node.jsでGoogle Drive上のファイルを指定フォルダに移動する (Google Drive API v3)](https://qiita.com/n0bisuke/items/8f108408a9e1067b9225)
* [Node.jsでGoogle Drive上のファイルを複製(copy)する (Google Drive API v3)](https://qiita.com/n0bisuk

元記事を表示

【AWS・Lambda】Lambdaから別リージョンのサービスを使用するための設定

# はじめに

Labmda関数から別のAWSサービスを使用したい…
でも、現在リージョンと別リージョンのサービスを使いたい!

そんな時に使用する設定をご紹介します。

Pinpointなど、まだ東京リージョンで使用できないサービスを使う時にも役立ちます。

# 方法

以下はNodeの例です。

“`javascript
const AWS = require(‘aws-sdk’);
// 以下を追加
AWS.config.update({ region:’us-west-2′ });
“`

# まとめ

`AWS.config.update`することで、リージョンを切り替えできます。

元記事を表示

mongoDBのドキュメント削除方法

初めまして!初投稿です。
こうきといいます。

mongoDBでドキュメント内容を削除する方法が日本語で簡潔に纏められている記事がなかったので、
備忘録にと投稿することにしました。

# 環境
ターミナル : iTerm
mongoDB : ver. 4.4.0

# DB起動 ログイン

“`
mongo // mongoDB起動

use admin // adminの部分は各々のDB名を記入
“`

#コレクション検索〜ドキュメント削除まで

##### ・コレクション検索
“`
show collections // コレクション検索
“`

##### ・コレクションの中身(ドキュメント)表示
“`
db.inventory.find() //inventoryの部分は各々のコレクション名を記入
“`

##### ・ドキュメント削除
inventoryの部分はコレクション名を記入
mongoDBのバージョンが3未満なら波括弧{}は不要です。

“`
db.inventory.deleteMany({}) //すべてのドキュメントを削除
db.invent

元記事を表示

Node.jsでExpress.jsを使ってpng画像を動的に表示するサンプル

画像ファイルを動的に表示するコードです。なかなか見つからなかったのでメモしておきます。

“`javascript:express.js

const express = require(‘express’);
const fs = require(‘fs’);

const app = express();

app.get(‘/image’, (req, res) => {
console.log(‘image’);
fs.readFile(‘./example.png’, (err, data) => {
res.type(‘png’);
res.send(data);
});
});

app.listen(‘3000’, () => {
console.log(‘Application started’);
});
“`

スクリプトを実行し

“`bash
% node express.js
Application started
image
“`

ブラウザで下記URLにアクセスすると画像が表示されます
ht

元記事を表示

DynamoDB Localトラブルシューティング(Node.js + TypeScript)

`Node.js + TypeScript(Dockerコンテナ)`から`DynamoDB Local`へ接続、操作をする際に発生したトラブルの備忘録です。

## DynamoDB Localとは?

AWS上のDynamoDBにアクセスすることなく、DynamoDBを利用するアプリケーションの開発・テストをすることが可能になります。

[DynamoDB Localの設定(ダウンロード版)](https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/DynamoDBLocal.html)

## 背景

前提として`Node.js + TypeScript`のプログラムはECS on Fargateのタスクスケジューラで定期実行するプログラムです。

今回DynamoDB Localを導入するのは、開発時にAWSのDynamoDBを利用せず、ローカル環境で全て完結させたいというのが理由です。

## 忙しい人のために

トラブル対応後のファイル構成、操作手順が下記になります。

[まとめ? (ファイ

元記事を表示

Asciidoctor.jsでプレビューしながら編集する

AsciiDoc の処理系といえば、Ruby の Asciidoctor[^asciidoctor]が有名です。しかし、JavaScript な Asciidoctor\.js[^asciidoctor_js]もあります。本記事は後者を使ってみた記録です。

## 関連

– https://qiita.com/Yamane@github/items/090973185791c174532f : ブラウザで生成結果を見つつ、AsciiDoc 文書を編集できます。反映までの時間が短かく、快適に編集できます。
– https://qiita.com/dbgso/items/927c4e3d0f739855f8d6 : こちらは Ruby 版の Asciidoctor を使っています。Docker で手軽に使い始められるところが良いですね。

## バージョン

“`shell-session
$ asciidoctor -v
Asciidoctor 2.0.10 [https://asciidoctor.org]
Runtime Environment (ruby 2.7.1p83 (2

元記事を表示

Express+Passportで簡単にOpenID ConnectのRPを作成してみた

#目的と前提
認証/認可について少しづつですが備忘録としてまとめようシリーズ2つめです。
前回はSAML2.0の仕様についてまとめてみました。
https://qiita.com/yuna-s/items/8aa318ca5426c3d9c7e6

今回は、Nodejsを使ったRPの作成[1]です。
OpenID Connectのアクセストークン取得まで実装しています。
(UserInfoを取得するところは実装していません)

IdPの作成にはオープンソースソフトのOpenAM[2]を使用しています。

認証/認可、基礎的なOpenID Connectの知識があることを前提としています。
#環境
macOS Catalina v10.15.5
OpenAM 14.5.1 Build d8b8db3cac (2020-March-11 23:25)
node v13.13.0

利用モジュール
“dependencies”: {
“cookie-parser”: “~1.4.4”,
“debug”: “~2.6.9”,
“express”: “~4.16.1”

元記事を表示

esbuildがwebpackより187倍早いらしいので環境構築しよう

# はじめに
久しぶりの投稿になります。
今回は以下の記事で、esbuidがすごい!!という話を聞きつけこの記事を書くことにしました。
参考: [Web フロントエンド] esbuild が爆速すぎて webpack / Rollup にはもう戻れない

どのくらいすごいのでしょうか?
参考に挙げている記事によると
> esbuild は Go 言語で書かれた JavaScript および TypeScript のビルドツールです。 esbuild 単体でトランスパイル + バンドル + ミニファイできます。 JSX / TSX もサポートされています。そしてめっちゃくちゃ速いという触れ込みです。最初から速度を意識して無駄がないように書かれており、構文解析・出力・ソースマップ生成は並列化され、ネイティブコードで動作します。公式の

元記事を表示

npm install –save firebase で発生したエラーの回避法

記事執筆時点で安定版のfirebase 6.2.4をインストールを試みたところ以下のエラーが出ました。

“`
$ npm install –save firebase@6.2.6
:
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! grpc@1.20.3 install: `node-pre-gyp install –fallback-to-build –library=static_library`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the grpc@1.20.3 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/yokoyamar

元記事を表示

JSON.stringifyで`TypeError: Converting circular structure to JSON`というエラーが出た時の対処法

オブジェクトをJSON.stringifyしたときに、循環参照が含まれていると以下のようなエラーが出ます。

“`js:コード
const a = { a1: “test” };
a.aa = a;
JSON.stringify(a);
“`

“`bash:実行結果
JSON.stringify(a);
^

TypeError: Converting circular structure to JSON
–> starting at object with constructor ‘Object’
— property ‘aa’ closes the circle
at JSON.stringify ()
“`

# 対処法
json-cyclicを使えば解決します。

> json-cyclic – npm
> https://www.npmjs.com/package/json-cyclic

“`bash

npm install json-cyclic
“`

“`js:コード
const { de

元記事を表示

ejsでインクルードをするときに、パスをルート相対URLで指定したい

## process.cwd()

Node.jsの`process.cwd()`は、コマンドが実行されたディレクトリを返します。

たとえば、次のようなファイル構成だったとしましょう。

“`plaintext
./project
└ src/
 └ *.ejs
└ package.json
└ gulpfile.js
“`

この場合、`project`ディレクトリで`gulp`コマンドをたたくことになります。その時に`process.cwd()`が返す値は`path/to/project`になるので、次のように1つ変数化しておけばルート相対URLのような感覚でパス名を記述することができます。

“`js
<% const ROOT = `${process.cwd()}/src`; %>
<%- include(`${ROOT}/path/to/_include.ejs`) -%>
<%- include(`${ROOT}/path/to/_include.ejs`) -%>
<%- include(`${ROOT}/path/to/_include.ejs`) -%>
<

元記事を表示

[JavaScript]ESLintの設定をグローバルルールで保存する

# 初めに

学習用でESLintが使いたいけど、プロジェクトごとに設定ファイル(.eslintrc.*)を作成するのは面倒。
そこで、設定ファイルをグローバルルールとして保存してプロジェクトごとに作成しなくていいようにしたので、その時にやった方法を備忘録としてまとめてみました。

# 方法

## 1. ESLintのインストール

まずはESLintをグローバルインストール。

“`terminal
> npm -g i eslint
“`

ここで、-gは–global、iはinstallを省略したもの。

## 2. ESLintの設定ファイルをグローバルとして保存

`.eslintrc.json`を作成し、ユーザーディレクトリ直下に保存する。

– .eslintrc.jsonを保存する場所

“`
MacOS:/ Users / {USERNAME}
Windows:C:\ Users \ {USERNAME}
“`

– .eslintrc.jsonの中身

“`json:.eslint.json
{
“extends”: “eslint:reco

元記事を表示

[Node.js] Handlebars Tips

# 概要

テンプレートエンジンであるHandlebarsをいろいろ触ってみた。
Handlebars自体は珍しいライブラリではなく、他に記事があるので、日本語情報が見つからなかった機能を主に紹介する。

https://handlebarsjs.com/
Handlebarsを使う際は、ここを一度は目を通すことをお勧めする。

> ここでは、通常のテンプレートとしての機能は紹介しない。
> 環境は、AWS Lambda Node.js上で動かす事を想定している。

# pertialとhelper

Handlebarsで機能を拡張する方法には、この2種類がある。

* partial : いわゆるサブテンプレート、テンプレートに動的に他のテンプレートを埋め込む事ができる。
* helper : 関数。テンプレートの中でヘルパ関数を実行し、その結果をtemplateに埋め込む事ができる。

“`hbs
{{!sample.hbs}}
{{#if hoge }}
{{ sample.sub.hbs hoge }}
{{/if}}
“`

例えばこんな感じで、`sample.hbs

元記事を表示

Node.jsでOSの環境変数を読み込む

“`
yuta:~ $ node
> process.env
{ SHELL: ‘/bin/bash’,
SESSION_MANAGER:
‘local/CARMILLA:@/tmp/.ICE-unix/1792,unix/CARMILLA:/tmp/.ICE-unix/1792’,
QT_ACCESSIBILITY: ‘1’,
“`

## 実行

“`app.js
console.log(process.env.USER)
“`

“`
yuta:~ $ node app.js
yuta
“`

元記事を表示

コロナで危険度の高い人を見つけたらすぐ治療しようとするアプリ作ってみた

# はじめに
この記事は [chillSAP 夏の自由研究2020](https://note.com/chillsap/n/n66e12ef65d11/) の記事として執筆しています。

猛暑が続いておりますが、皆さまいかがお過ごしでしょうか。
今年はコロナの影響で、日々言い知れぬ不安に苛まれることも多いのではないでしょうか。
この状況下で発熱してしまった方のご心境は察するに余りあります。
このような方の症状を一刻でも早く緩和させるため、今回は特に治療の緊急度の高いご高齢&高熱の方を判定してイ〇ジンをかけて治療を行うアプリを開発しました。
(注:本記事はコロナウイルスに対する治療法を提案するものでもなければ、イ〇ジンの効果を証明するものでも無いことをご承知おきください。また、ご気分を害された方がいらっしゃったら誠に申し訳ございません。)

# 概要
![コロナアーキ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531075/499b345c-0aa4-5046-15cb-842a95b2fea2.p

元記事を表示

pkgでインストールしたnode.jsを、Nodebrewのnode.jsに入れ替えたい!

# nodeのバージョン管理を簡単にした〜い
ので、個人的にnodeをインストールするときは最初からNodebrewを使っているのですが、仕事で使っているマシンでは何を思っていたのかpkgでインストールしていたので、入れ替えした手順を備忘として残したいと思います

~~同部署の人がnodeのバージョン変更で手こずってて、Nodebrewで一発やんけと嘲笑していたところ
自分もpkg版だったのでしれっと入れ替えた~~

とりあえず最初に、そもそもnode.jsが入っているかを確認しておきましょう

“`
$ node -v
“`
そしてNodebrewとは、?



hokaccha / nodebrew

Node.js version manager. Contribute to hok

node.jsでnpm run devがエラーになった場合の対処法

nuxt.jsの開発環境でで以下を実行したらエラーが出ました。

“`
$ npm run dev
:
This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?
:
“`

##結論
以下のコマンドを実行したら解決しました。一度消去後に再インストールしてます。

“`
$ rm -rf node_modules
$ rm package-lock.json yarn.lock
$ npm cache clear –force
$ npm install
“`

コマンド実行前もインストールされているはずでしたが、バージョンの違いでエラーが出る場合があるので一度消去して、再インストールしたらいけました!バージョンは変化していませんが、node?のバージョンが変化してのでしょうか。
詳しい