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

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

【Firebase】FireStoreに一括でcsvまたはjson形式のデータをアップロードする

## 概要
[FireStore](https://firebase.google.com/docs/firestore)は、モバイル開発においてとても便利なDatabaseの一つですが、データの一括importが少々手間取ったので方法を記載しておきます。

## Step1: Jsonデータの用意
私の場合はMacのNumbersを使用して、CSVを作成し、[CSV→Json変換サイト](https://csvjson.com/csv2json)を用いてjsonデータに変換しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261934/f8749bcc-f8ca-75ae-1bdc-83703642ed09.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261934/fe45d726-0f5b-8711-3d89-e280a30d5fb0.png)

## St

元記事を表示

4. Koa2を使ってWebページを作成しよう ~koa-bodyでpostパラメーターを取得~

## 記事一覧
* [第一回 Koa2の環境を構築する](https://qiita.com/MEDICE-NOTE/items/0c0d18cf01bc4ae50c05)
* [第二回 Hello World!! を表示する](https://qiita.com/MEDICE-NOTE/items/6260a7a58bc0c3303de0)
* [第三回 koa-routerでGETパラメーターを取得する](https://qiita.com/MEDICE-NOTE/items/bb363d091bff59345da7)

## 概要
当ページでは、koa-bodyを利用してPOSTパラメーターの取得を行います。
また、前回の続きとして進めて行くので、上手くいかない場合は以前の記事をご覧ください。

## koa-bodyとは
formなどで送信されたリクエストを取扱うミドルウェアで、multipartやjson形式のデータも扱うことができる特徴があります。
https://github.com/dlau/koa-body

### インストール
コンソール上で以下のコマンドを入力

元記事を表示

3. Koa2を使ってWebページを作成しよう 〜GETメソッドの利用〜

## 記事一覧
・[第一回 Koa2の環境を構築する](https://qiita.com/MEDICE-NOTE/items/0c0d18cf01bc4ae50c05)
・[第二回 Hello World!!を表示する](https://qiita.com/MEDICE-NOTE/items/6260a7a58bc0c3303de0)

## 概要
KoaではGETとPOSTが異なる手段で認識されるため、GETパラメーターは`koa-router`を、POSTパラメーターは`koa-body`を利用して、それぞれ分けて取得する必要があります。
なので、当ページではまずはGETのみについて扱い、POSTは次の投稿で書く予定です。
また、前回の続きとして進めて行くので、上手くいかない場合は以前の記事をご覧ください。

## GETパラメーターを表示しよう
ますはGETリクエストをクライアントから送信するためのHTMLフォームを作成します。
`/view/get-request.ejs`を作成して以下のコードを追加してください。

“`get-request.ejs

元記事を表示

2. Koa2をつかってWebページを作成しよう 〜Hello Worldを表示〜

## 記事一覧
・[第一回 Koa2の環境を構築する](https://qiita.com/MEDICE-NOTE/items/0c0d18cf01bc4ae50c05)

## 概要
今回はKoa2の環境でHello World!!と表示を行っていきます。
前回の記事をご覧になっていない方は、上記のリンクからご覧ください。

## サーバー構築
まずはサーバーとして機能させるためのコードを書いていきます。

サーバー起動のコマンドは以下を使用します(現段階では実行してもエラーが表示されます)
`npm start`

上記のコマンドを実行すると、**package.json**の”scripts”:{“start”: “[ 実行処理 ]”}で指定した処理が実行されます。

“`package.json
“scripts”: {
“start”: “node ./index.js”
}
“`

前回 **package.json**を上記のように設定しているので、`node ./index.js`が実行され、**koa2test/index.js**が呼び出されます。

元記事を表示

1. Koa2を使ってWebページを作成しよう 〜環境構築編〜

## はじめに
今回初投稿です。
私たちは卒業研究で[Web版のお薬手帳](https://www.medice-note.vxx0.com/)を作りました。
その際、Koaを利用したWebアプリ開発の資料が少なく困ったため、投稿することにしました。

## 概要
当ページでは、Koa2を使ったWebページ作成に必要な環境を構築します。
開発ツールは[WebStorm](https://www.jetbrains.com/ja-jp/webstorm/)を使用します。
最終的には簡単なメモアプリの作成を予定しています。Webアプリを作成する順番を1から説明していくのでよろしくお願いします。

## Node.jsの導入
KoaはNode.js上で動作するフレームワークです。なので、**実行環境にNode.jsの導入**が必要となります。
まずは、[nodejs.org](https://nodejs.org/ja/)にアクセスし、Node.jsをインストールしてください。基本的には推奨版と記載されているバージョンを利用すると良いようです。
今回は推奨版の12.18.3を利用します。

元記事を表示

Redisの概要とNode.jsでの使い方

# Redisの概要
redisはインメモリのNoSQLのデータベースです。単純なKey-Valueストアのように文字列だけでなく、様々な種類の値をサポートしています。
Webアプリケーションのスケーリングに便利です。

https://redis.io/

## 環境構築
dockerが利用できるなら、それで環境を作成するのが楽です。

“`コマンド実行例
docker run –name redis -p 6379:6379 -d -v /Users/hoge/dev/node/socketio/data:/data redis:latest
“`

dockerで作成したコンテナでredis-cliを使用するには以下のようにします。

“`
hoge@macpro socketio % docker exec -it redis /bin/bash
root@8f9888c8bb76:/data# redis-cli
127.0.0.1:6379>
“`

ホストとポートを指定したい場合は以下のようにします。デフォルトではlocal:6379に接続しています。

`

元記事を表示

Amazon Product Advertising API 5.0(PA-API v5)をexpressでREST API化する

# 概要
Amazon Product Advertising API 5.0 というAmazonが提供している商品情報検索APIがあります。
SDKが公式から提供されているのですが、サンプルコードのままだとコード内でASINやキーワードを指定するためAPIを単発でしかコールできないため、expressでREST APIとして動作するようにしました。

リポジトリ:https://github.com/sakatech-jp/paapi5-express-sample

【参考】
・[Product Advertising API 5.0 Documentation](https://webservices.amazon.com/paapi5/documentation/)
・[Product Advertising API 5.0 SDK for NodeJS ](https://github.com/wusoma/paapi5-nodejs-sdk)

# 前提条件
– Amazonアソシエイト・プログラムに承認されたアカウントを所持している
– 認証キーを発行している
– Nod

元記事を表示

【NestJS】ヘルスチェック(v7版)

[【NestJS】ヘルスチェック(v6版)](https://qiita.com/piggydev/items/922be61c323e047a90c1) を NestJS 7 へのバージョンアップに伴い、変更した内容になります。

# 環境

– [NestJS 7.0.7](https://nestjs.com/)
– [TypeORM 0.2.25](https://github.com/typeorm/typeorm)
– [@nestjs/terminus 7.0.1](https://github.com/nestjs/terminus)

NestJS 6 時代は、`godaddy/terminus` が必要でしたが、7 から依存が排除されています。

# インストール

“`
yarn add @nestjs/terminus –no-optional

// or

npm install –save @nestjs/terminus –no-optional
“`

# 実装

– ほとんど、↓のページに書いている通りです。
– https://doc

元記事を表示

Twitter広告APIを利用してキャンペーンを作ってみる その5~Twitter広告APIでキャンペーン作成編~

# 経緯
私が所属している会社では__[待ラノ](https://lanobe.jp/ “待ラノ”)__という小説投稿サイトを運営しています。
待ラノではオススメ小説のランキング上位5作を定期的にTwitterの公式アカウントで紹介しています。
紹介された小説をTwitter広告のキャンペーンを利用してプロモーションをしようってなりました。

# そもそもTwitter広告のキャンペーンって何?
Twitter広告のキャンペーンですが、簡単いうと1日にかける予算や期間内にかける総予算を指定して、Twitterに広告を出す機能です。

# Twitter広告APIでキャンペーンを作る理由
1つのキャンペーンで複数のツイートをプロモーションする場合、1日にかける予算を一気に消化されてしまいます。
しかもどのツイートにどれだけ予算が消化されているかがわかりません。
そのため、1つのツイートに1キャンペーンを紐付けることで消化される予算の見える化を行うことになりました。

ただ手動でTwitterの広告コンソールから、1ツイートに1キャンペーンを毎回作ることになると結構手間です。
というわけで

元記事を表示

『このExcelのA列のファイルのB列の文字列をC列の文字列にしてクレメンス』

「ちな、7,000件な!」
さすがに手入力はやってられん。という事で、Node.js で自動化してみました

※ 完成品は[こちら](https://github.com/daichi-iwamoto/excel-replaceer)

## テスト環境の下準備
Node.jsはインストール済みで
最低限のjs知識がある方を前提としています

最終的なディレクトリ構造はこんな感じを想定してます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185788/64605e09-c173-870b-c66f-9c487440c813.png)

### プロジェクトの作成
任意のディレクトリを作成して`npm init`しましょう
入力項目は任意で決めて大丈夫です

“`bash:bash
mkdir excel-replaceer
cd excel-replaceer
npm init
“`

### モジュールのインストール
今回使用するモジュールは`fs`と`xlsx`の2つです

元記事を表示

WebSocket のサーバー・クライアントをコマンドラインで簡単に実行する(npx と wscat)

## はじめに
こちらのツイートをきっかけに、ふと思いついて試した内容の第二弾のメモです。

上記を見て「MQTT.js で実現できそうかも」という話をコメントして、その際に試

元記事を表示

グローバルインストールせずにMQTTをCLIで試す

JavaScriptやNode.jsを書いてる人はnpmコマンドなどは通常装備だと思うのでnpxでmqttを利用する方法のメモです。
JSerやNoder向けIoTって感じですね。とはいえMQTTをとりあえず試すってときの話です。

npmが入ってない人は素直にmosquittoをインストールでも良いかも。

## MQTTクライアントライブラリ(MQTT.js)を利用

mqttをcliで利用できるかつnpmにレジストリされてるツール探してました。

元記事を表示

MQTTクライアントをコマンドラインで簡単に実行する(npx と MQTT.js)

## はじめに
こちらのツイートをきっかけに、ふと思いついて試した内容のメモです。

【追記】 @n0bisuke さんも記事を書かれていたので、リンクを掲載します。
 ●グロ

元記事を表示

mongooseでMongoDB に接続しようとしたら身に覚えのない機能に対するWarningが出た

## はじめに
MongoDB を利用する中、使っていない(特に指定していない)機能に対して Warning が出た。

“`bash
(node:54073) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
“`

ensureIndex なんて書いた覚えはないので、ナンノコッチャと。Warning なので放置でも良いのだが、気持ち悪いので、解消することに。割と気になる性格。

## 動作環境
|Item|version|
|:-:|:-:|
|MongoDB|4.2.8|
|mongoose|5.10.3|
|node.js|12.18.1|

mongoose の最新は、2020年9月23日現在 5.10.6。週1更新!

## 解決方法

接続時に createIndex: true を指定すれば良い。

“`javascript
mongoose.connect(‘mongourl’, {
useCreateIndex: true,
useN

元記事を表示

【超解説】Azure AD B2C でシングルページ Web アプリケーションを作成する

Azure AD B2C は、企業-消費者間 ID をサービスとして提供する Microsoft のサービスです。Azure AD と聞くと、どーせマイクロソフトアカウントしか使えないんでしょ?と想像する方もいらっしゃるかもしれませんが、Azure AD B2C は好みのソーシャルアカウントを使用することもできますし、ローカル ID を使用することもできます!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149921/51b02fd6-e8d5-fe08-72b5-3fd0a13a6219.png)
今回は Microsoft が提供しているドキュメントを基に、どうやって Azure AD B2C 環境を構築するのか見ていきたいと思います。

#サンプルのリソース
今回試して見るサンプルは以下の GitHub に上がっているソースコードを使用します。Javascript ベースのシングルページアプリケーションです。
https://github.com/Azure-Samples/ac

元記事を表示

next.jsをGAEにデプロイ

#概要
Google App Engine にnext.jsで実装したFrontendサービスをデプロイするための手順とポイントについてまとめます。
また、gcloud SDKはローカル環境で利用可能な状態であることを想定します。

#package.json
最初にpackage.json内に記載のscriptをGCPにデプロイするために編集します。(これは必須ではありませんが開発効率向上のため設定)

“`package.json
{
“scripts”: {
“dev”: “next”,
“build”: “rm -rf ./build && NODE_ENV=production next build”,
“start”: “next start”,
“deploy”: “npm run build && gcloud app deploy”,
“export”: “next export”
},
“dependencies”:{

””””””’略”””””””””’

}
}
“`

デプロイのた

元記事を表示

初心者によるVue.jsハンズオン

# はじめに
初めて記事を書くので暖かく見守って下さい。
仕事でVue.jsを使用するということで、JS初心者が手っ取り早くVue.jsに触れてみる。

# 早速触ってみる
用意するものは使い慣れたブラウザとエディターがあれば十分です。

私は今回以下のものを用いて開発を行います。
-ブラウザ:Google Chrome
– エディター:Visual Studio Code

### まずはベースページの作成

“`html:index.html


Hello, World


“`

こちらはvue.js本体を読み込むだけの空ページの作成を行っています。
今回のハンズオンでは、vue.jsのCDNを使っていきます。

こちらのコードをVSCodeで書いたら保存しましょう。
そしてGoogle Chromeにドラッグ&ドロップすることで表示できます、便利。(今まで右クリックしてブ

元記事を表示

Firestoreのエラー “Converting circular structure to JSON Firebase”

## エラーの原因
document内で, referenceタイプのフィールドを使っている場合に発生します.

## 筆者のアプローチ
referenceタイプのフィールドが他のドキュメントを指すことで再帰的になっている為, そのドキュメントのパスを文字列型に変換してあげればいいと思います.
他の方法があればご教授いただきたいです.?‍♂️

## 具体的な方法
下記は取得したいドキュメントの `DocumentReference `を引数として与えてあげるとそのドキュメントをオブジェクトとして返してあげる関数です.

“`js
const resolveCirculations = (documentRef) => {
const data = documentRef.data();
const circlerRefResolved = Object.keys(data).reduce((ret, key) => {
ret[key] = has(data[key], ‘path’) ? data[key].path : data[key];
return

元記事を表示

Express+PostgreSQL+SequelizeをDockerで構築してみる【後編】

#前回
https://qiita.com/rockguitar67/items/b644a63b3e39cc1fcaea

はい続きです。

#③DB周りの設定

コンテナ内のExpress環境においてDB設定がなされているファイルがあります。
ここでdocker-compose.ymlで設定したDBへのアクセス情報が明記されています。

“`javascript:db_client.js
module.exports = {
pg_client: function () {
const { Client } = require(‘pg’)

const client = new Client({
user: process.env.DB_USER,
host: process.env.DB_HOST,
port: process.env.DB_PORT,
database: process.env.DB_NAME
})

元記事を表示

Express+PostgreSQL+SequelizeをDockerで構築してみる【前編】

#前説

将来的にはフロントエンドはVue、バックエンドはExpressのような構成を目指します。
まずはバックエンドでExpress+PostgreSQL+Sequelizeでの環境構築です!

#①Dockerでコンテナ動作まで

##初期ファイル構成
“`
-Dockerfile
-docker-compose.yml
-app
|– package.json
“`

##Dockerfile

“`:Dockefile
# イメージ指定
FROM node:latest

# 環境変数設定
ENV NODE_ENV=”development”

# 作業ディレクトリ作成&設定
WORKDIR /src

COPY ./app /src

RUN npm install
“`

##docker-compose.yml

ここでNode.jsのExpress(サーバーサイド)コンテナの構造とDBコンテナの構造を設計します。

– ポート番号は5432が一般的です。
– Volumesではコンテナを破棄しても、データを永続化できます。その為データをコンテナ外に保存します。

元記事を表示

OTHERカテゴリの最新記事