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

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

【Meteor】Hello Worldを出力する

#プログラミング勉強日記
2021年2月23日
[前の記事](https://qiita.com/mzmz__02/items/03c4bb839a5e5abe02a8)でNode.jsの3大フレームワークについて取り上げた。今日は、MeteorでHello Worldを表示する方法をまとめる。

#Meteorを導入する方法
 Node.jsの開発環境が構築されていることを条件とする。Node.jsの環境構築がまだの人は[こちらの記事(Windows版)](https://qiita.com/mzmz__02/items/6cc53f06205fd11367bc)を参考に環境構築してみてください。
 Windowsの場合、Chocolateyを[公式サイト](https://chocolatey.org/)からインストールする。

“`:管理者のPowerShell
$ Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol

元記事を表示

CBORってなんだろう?

# CBORとは
Webサービスでよく使われるデータ交換フォーマットとして有名なものはJSONだと思います。
ただ、サイズが冗長なこともあり、バイナリとして表現しようと様々なものが生まれてきました。(例えば、MongoDBで使われるBSONなど)

=> そんな中、今後注目されそうなものが**RFC8949**でRFC化された**CBOR**です。

## 特徴
* JSONデータモデル「数値、文字列、配列、マップ(JSONオブジェクト)、およびfalse、true、nullなどの値」に基づいている。
* エンコードされたデータは自己記述的である。
* デコードのためのスキーマ記述は不要である。
* JSONを使用したい一部のアプリケーションでは、**暗号化キー**、**グラフィックデータ**、**センサー値**などのバイナリデータを転送する必要があります。
JSONでは、これらのデータをエンコードする必要があり(通常はbase64形式)、複雑さとかさばりが増します。
=> CBORでは、このバイナリデータをそのまま受け入れることができます。

一番の特徴は、CBOR自体がバイ

元記事を表示

M1 Mac での環境構築の最適解

#本記事の執筆に当たって
M1チップ搭載のMacが発売されましたが、アーキテクチャの違いで環境構築に戸惑いを感じた方も多くいるのではないでしょうか。私もその一人でした。本記事では**2020年2月20日**現在の状況下で最も優れていると思われる環境構築方法を紹介したいと思います。
#環境構築の上での方針
– できるだけ**ネイティブ環境**(**arm64**)で構築する。
– ネイティブ環境で動作が不安定になる場合はRosetta2を使用して**Intel環境**(**x86_64**)で構築する。
– アーキテクチャ間の切り替えはスムーズにできるようにする。

#本記事で環境構築する開発ツール・プログラミング言語
– Homebrew(**arm64/x86_64**)
– gcc(**arm64**)
– Nodebrew(**x86_64**)
– Node.js(**x86_64**)
– npm(**x86_64**)

**Homebrewに関してはパッケージ管理システムとしてネイティブ環境とIntel環境のどちらにも採用することとする。**

#前提

元記事を表示

【Express】Hello Worldを出力する

#プログラミング勉強日記
2021年2月22日
[一昨日の記事](https://qiita.com/mzmz__02/items/03c4bb839a5e5abe02a8)でNode.jsの3大フレームワークについて取り上げた。今日は、ExpressでHello Worldを表示する方法をまとめる。

#Expressを導入する方法
 Node.jsの開発環境が構築されていることを条件とする。Node.jsの環境構築がまだの人は[こちらの記事(Windows版)](https://qiita.com/mzmz__02/items/6cc53f06205fd11367bc)を参考に環境構築してみてください。
 npmを使ってExpressをインストールするだけで、Expressを導入することができる。

“`
$ npm install express
“`

#Hello Worldを出力する
 JavaScriptファイルを作成する。今回は`app.js`という名前のファイルを作成した。ポート番号を8080に設定してるので、今回は`http://localhost

元記事を表示

Google DriveのAPIをNode.jsから触るメモ

Google Drive API v3を触ります。
google-auth-token-generatorを使ってtoken.jsonの作成をしてみる版です。

> 以前書いた記事も参考に: https://qiita.com/n0bisuke/items/ff1479cd14e7a0c0be0c

## 環境

* Node.js v15.9.0

## credentials.jsonを取得

チュートリアルを参考にAPIを有効にし、credentials.jsonを手元に保存しましょう。

> https://developers.google.com/drive/api/v3/quickstart/nodejs

## google-auth-token-generatorでtoken.jsonを作成

google-auth-token-generatorを使うとパーミッションをつけたtoken.jsonを作成しやすいです。

> 利用イメージ
> ![](https://camo.githubusercontent.com/91dc29cde99aa2b53b192532

元記事を表示

【nodist】`npm i`実行時の`cb.apply is not a function`【Windows環境】

nodistが`.node-version`ファイルを参照したり、自分でNode.jsのカレントバージョンを変更したりすると、Node.jsと`npm`のバージョンがずれてしまうことがあります。

“`
npm ERR! cb.apply is not a function

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\*****\AppData\Roaming\npm-cache\_logs\yyyy-mm-ddTXX_XX_XX_XXXX-debug.log
“`

そういうときは、次のコマンドを叩くかnpmをインストールしなおして`npm`コマンドのバージョンをNode.jsのバージョンにそろえてあげます。

“`shell
nodist npm match
“`

これで無事に`npm`コマンドが利用できるようになります。
もしこれでも改善されない場合は、npmを再インストールしてください。

そもそも`nodist npm match`が実行できない場合はtake

元記事を表示

M1 Macでasdfを使ってnodejsをインストールしたい (2021/02/22時点)

M1 Macでasdfを使ってnodejsを動かそうとしたら微妙にハマったメモ。

asdfでnodejsをインストールしようとすると

“`bash
$ asdf install nodejs xx.xx.xx
“`

> Binary not found for version xx.xx.xx

のようなエラーが出る人向け。

# 結論

この記事を書いている2021/02/22時点では、M1 Macに対してnodejsの `arm64` バイナリが提供されていない。 このため、シェルが `arm64` で実行されている場合、 `arm64` のバイナリを取得しようとして失敗する。asdfを `x86_64` で実行することで、 `x86_64` のバイナリを取得できる。

nodejsのインストール時にarchコマンドでアーキテクチャを指定する。

“`
$ arch -x86_64 asdf install nodejs xx.xx.xx
“`

参考: https://github.com/asdf-vm/asdf-nodejs/issues/189#issueco

元記事を表示

Node.js でローカルファイルに書き込む

「いまさらこんな記事かよ」と思われるかもしれませんが意外と落とし穴にハマる事が多いのでケース毎にまとめておきます。

https://nodejs.org/api/fs.html

## 一気に書き込む場合

### エラーチェックの必要がなくて、データが書き込まれる間ユーザーを待たせることができる場合。

**writeFileSync** を使います。

“`
const fs = require( ‘fs’ )
fs.writeFileSync( ‘some.file’, ‘abc’ )
“`

### エラーチェックが必要であるか、データが書き込まれる間ユーザーを待たせることができない場合。

**writeFile** を使います。

“`
const fs = require( ‘fs’ )
fs.writeFile( ‘some.file’, ‘very long string’, er => { if ( er ) throw er } )
“`

3番目の引数にはエラーが渡ってきます。例えばファイルを`/some.file`のようにしてルートディレクトリに作

元記事を表示

JavaScriptでcsvダウンロードを実装する方法

#はじめに
フロント(React)でcsvダウンロードを実装する機会があったため、備忘録です。
どうぞご活用ください。

#実装

“`javascript

const handleDLcsv = async () => {
//アイテムの定義
const download_items = [
{‘id’: 1, ‘name’: ‘apple’, ‘price’: 100},
{‘id’: 2, ‘name’: ‘orange’, ‘price’: 120},
{‘id’: 3, ‘name’: ‘melon’, ‘price’: 800}
];
//csvヘッダー
const array_data = [[‘id’, ‘name’, ‘price’]];

//文字コード
const bom = new Uint8Array([0xEF, 0xBB, 0xBF]);

//csv用データ作成
download_items.map((

元記事を表示

IoTデータの可視化サービス「Ambient」を試す(Node.js のパッケージを利用)

以前からサービスについて知っていたものの、クラウドサービスでのデータ可視化はあまりやってこなかったのもあり、まだ利用をしたことはなかった [IoTデータ可視化サービスの「Ambient」](https://ambidata.io/)。
(これまでは、HTML+JavaScript でグラフ描画ライブラリを使っての可視化をやってた)

今回、よく自分が利用しているデバイス・サービスで利用する場合はどうすれば使えるのかを見てみたり、実際に Node.js のパッケージを使ってデータの送信と可視化の部分を試してみたりしました(送ったデータはランダムに生成したダミーデータを利用)。

## Ambient の概要
既に [Qiita でもタグ](https://qiita.com/tags/ambient)があり、記事もいくつも書かれていたりしますが、自分の理解を深めるためにも以下の公式ページをざっくり見ていって、その内容をメモしてみました。

●Ambient – IoTデータ可視化サービス
 https://ambidata.io/

![構成図.jpg](https://qiita-im

元記事を表示

Node.jsのバージョン管理

①“`node –verion“` で現在のNode.jsのバージョンを確認。

②“`n ls-remote –all“`でダウングレード/アップグレードできるバージョンを確認。

③“`sudo n 12.0.0“`で指定のバージョンにダウングレード/アップグレードできる。

元記事を表示

npmでcb.apply is not a function エラーが発生した対処

備忘録として。

### 現象
npmで何かパッケージをインストールしようとすると、以下のようなエラーが発生。
npmをアップデートしろとのエラーだが`npm update`や`npm instal`が同じようなエラーで実行できない。

“`powershell
npm WARN npm npm does not support Node.js v15.9.0
npm WARN npm You should probably upgrade to a newer version of node as we

npm ERR! cb.apply is not a function

“`

### 環境
– Windows 10 pro
– Node.js バージョン 15.9.0 (Chocolateyからインストール)
– npm バージョン 7.5.3

### 原因
原因は、私の場合、昔にインストールしていたNode.js(アンインストール済み)のキャッシュが残っていたためのようでした。
npmのバージョンを`npm -v`で確認すると、本来7.5.3のはずが

元記事を表示

ZoomAPIを使って、ミーティングルームを作成してみる。(Create Zoom Meeting)

#この記事について
表題の通り、ZoomのAPIを使って、ミーティングルームを作成したときのメモです。
Node.jsを使って作成しました。
認証方法はOAuthを利用しました。

#ゴール
この記事では、2021年2月25日 10時~ 1時間のミーティングルームを作成することをゴールとします。

#手順
1.「Zoom」アカウント作成
2.「Zoom API」利用のための事前準備
3.認証コードの取得
4.アクセストークンの発行
5.必要パラメータの作成
6.実行

##1.「Zoom」アカウント作成
まだアカウントを取得していない方は、下記にアクセスしてアカウントを作成します。
https://zoom.us/jp-jp/meetings.html

##2.「Zoom API」利用のための事前準備
2-1.クレデンシャル情報の取得
下記にアクセスします。
https://marketplace.zoom.us/
その後、右上の「Develop」から「Build App」をクリックします。

「Choose your app type」と聞かれるので、
今回は、「OAuth」の中の

元記事を表示

【Node.js】WindowsでNode.jsの環境構築をする

#プログラミング勉強日記
2021年2月21日
友人にNode.jsの環境構築を教えるために一度調べたので、そのやり方をまとめる。

#Node.jsをインストールする
 [Node.jsの公式サイト](https://nodejs.org/ja/)からNode.jsのインストーラーをダウンロードする。(今回は推奨版をダウンロードした。)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/642821/6d5719ab-a923-0b88-dbc5-8af1593facb7.png)

 インストーラーをダウンロードしたら、開いて実行する。その後指示にしたがtt進めていく。基本的にはそのまま`Next`をクリックして進めていく。最後に`Finish`を押して終了する。

#Node.jsのバージョンを確認する
 それぞれコマンドで下記を実行すると、バージョンを確認することができる。バージョンが表示されない場合は、インストールができていない。

“`
$ node ^v
$ npm -v

元記事を表示

HerokuでNode.jsのアプリからPostgreSQLに接続できない時の対処

N予備校 【2020年度】プログラミング入門 Webアプリ
[第4章24節 【サービス開発9】セキュリティ対策と公開]

Herokuの設定で詰まったので解決した手順を記載。

Database / GitHubのOAuthなどの設定を終えてHerokuのアプリを起動し、ログインをしようとすると下記のエラーが発生

“`
2021-02-21T03:05:26.710859+00:00 app[web.1]: Unhandled rejection SequelizeConnectionError: no pg_hba.conf entry for host “XX.XXX.XXX.XXX”, user “xxxxxxxxxx”, database “xxxxxxxxxxxx”, SSL off
2021-02-21T03:05:26.710870+00:00 app[web.1]: at connection.connect.err (/app/node_modules/sequelize/lib/dialects/postgres/connection-manager.js:1

元記事を表示

バーンダウンチャートを送信するSlackBotの作成

## 概要
近年、スクラムを導入した開発チームが増えつつあります。
スクラムチームの質を向上させるため、プロジェクト管理者だけではなくて、チームメンバーにも開発状況を把握しやすくすることが重要だと思います。

今回は、JIRA REST APIを使って、最新のスプリント情報を取得すると、[バーンダウンチャート](https://en.wikipedia.org/wiki/Burn_down_chart)を生成して、日常的にSlackのChannelに送信するBotを紹介します。

## 要求仕様
node: 12.20.1
npm: 6.14.10

## JIRA REST API テスト
まずは[Chrome API Tester Tool](https://chrome.google.com/webstore/detail/talend-api-tester-free-ed/aejoelaoggembcahagimdiliamlcdmfm)を使って、[JIRA REST API](https://docs.atlassian.com/jira-software/REST/7.0.

元記事を表示

サーバーレスで動的サイト作成(Firebase Hosting + Cloud Functions + Node.js + Express + EJS)

# 本記事でやること

#### 下記の構成でサーバレスで動的サイトを作成する。

* Firebase
– Firebase Hosting
– Firebase Cloud Functions
* Node.js
– Express(フレームワーク)
– EJS(テンプレートエンジン)
– Express Generator(雛形の作成)

プロジェクトディレクトリの新規作成から、Firebase へデプロイして動作確認をするところまでを掲載します。
各種ツールはインストールしておいてください。

# 環境
* Windows 10
* Ubuntu(WSL) 18.04.5 LTS
* npm v6.14.11
* firebase v9.3.0

# 事前準備
1. Firebase コンソールから新規プロジェクト作成する
2. 料金プランを Blaze (従量制)に変更しておく
**※ 使用量に応じて料金が発生するのでご注意ください**

# 手順

#### 新規プロジェクトフォルダを作成
“`
mkdir testapp
cd testapp
“`

元記事を表示

【Node.js】Node.jsの3大フレームワークについて

#プログラミング勉強日記
2021年2月20日
Expressを使うことが多いが、他のNode.jsのフレームワークが気になったので簡単にまとめる。

#Expressとは
 ExpressはNode.jsを活用したWebアプリ開発を効率よく進めることができ、よく使われている標準的なものである。
 特徴としては、情報量が多く日本語のリソースも多い。また、拡張モジュールが豊富なので追加することで柔軟な対応ができる。Expressは記述量が少なくサーバー制御が可能で複雑なシステムも簡単に拡張することができる。

#Meteorとは
 Meteor(読み方:「メテオ」)フレームワークはフルスタックで、サーバー制御からフロントエンドまですべてをJavaScriptで書くことができる。MeteorはNode.jsをベースとしていて、JavaScriptとHTML, CSSだけでWebアプリを開発できるプラットフォームである。
 特徴としては、デバイスを含めてプラットフォームに依存しなく簡単に記述することができる。また、迅速な開発が可能でSPAを早く構築して公開するまでをサポートする。既存の開発そ

元記事を表示

LambdaからS3を利用する

# はじめに
[チュートリアル: Amazon S3 で AWS Lambda を使用する](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/with-s3-example.html)で公開されているチュートリアルを試しながら、LambdaからS3を利用した時のメモになります。
(Cloud9の環境構築は[Cloud9_環境構築2021](https://qiita.com/mokoberu/items/7810eab2b2852f10cac9)にまとめています。)

## S3にアップロードされる画像のサムネイルを作成する
1. IAM コンソールの [Roles] ページを開きます
1. [ロールの作成] を選択します
1. 次のプロパティでロールを作成します
1. [信頼されたエンティティ] – [AWS Lambda]
1. [Permissions (アクセス許可)] – [AWSLambdaExecute]
1. ロール名 – lambda-s3-role

チュートリアルにあるサンプルを準備します。

“`conso

元記事を表示

【Node.js puppeteer7.1.0でブラウザ操作自動化&スクレイピング】

スクレイピングしたくてやっぱスクレイピングといえばPythonかなーと思ったけど、Node.js今自分の中で熱いからライブラリーー探したらあったよってこと?

読み方はパペッティア

Chromeの操作を自動化できるライブラリ
色々な操作をする時の参考になればいいなとおもう。
使ってみた感想はNode.js慣れしている人ならかなり簡単にスクレイピングできるなって感じです。
***
#####よく操作するクラスの種類#####

・Browser 
  ブラウザの生成、終了のときくらいしかつかわない

・Page  
  最も利用するクラス。ページの移動、formへの入力、Elementの取得などができる

・ElementHandle 
  Pageクラスの「“.$()“, “.$$()“, “.$eval()“, “.$$eval()“ 」などを利用してElementを取得したときに返されたりする。指定したElementに直接click()やhover()をさせたりできる。
***
#####【操作するブラウザを生成】#####

“`jsx
const bro

元記事を表示

OTHERカテゴリの最新記事