- 1. 【Express】Hello Worldを出力する
- 2. Google DriveのAPIをNode.jsから触るメモ
- 3. 【nodist】`npm i`実行時の`cb.apply is not a function`【Windows環境】
- 4. M1 Macでasdfを使ってnodejsをインストールしたい (2021/02/22時点)
- 5. Node.js でローカルファイルに書き込む
- 6. JavaScriptでcsvダウンロードを実装する方法
- 7. IoTデータの可視化サービス「Ambient」を試す(Node.js のパッケージを利用)
- 8. Node.jsのバージョン管理
- 9. npmでcb.apply is not a function エラーが発生した対処
- 10. ZoomAPIを使って、ミーティングルームを作成してみる。(Create Zoom Meeting)
- 11. 【Node.js】WindowsでNode.jsの環境構築をする
- 12. HerokuでNode.jsのアプリからPostgreSQLに接続できない時の対処
- 13. バーンダウンチャートを送信するSlackBotの作成
- 14. サーバーレスで動的サイト作成(Firebase Hosting + Cloud Functions + Node.js + Express + EJS)
- 15. 【Node.js】Node.jsの3大フレームワークについて
- 16. LambdaからS3を利用する
- 17. 【Node.js puppeteer7.1.0でブラウザ操作自動化&スクレイピング】
- 18. Node.js製サーバの起動方法をforeverからsystemdに移行する
- 19. 【React Native】簡単なAPI連携のアプリケーションを作成する ③ESLint+Prettierの導入(寄り道)
- 20. わからなかったワード
【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 functionnpm 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
Node.js製サーバの起動方法をforeverからsystemdに移行する
foreverで起動していたExpressのサーバをOS再起動時に自動起動させたかったのでSystemd管理に移行します。
initd向けにforeverの自動起動の仕組みを提供する`initd-forever`というパッケージもあったり、forever自体を起動する方向もアリですが、Systemdでは自動再起動の制御が細かくなっているなど、foreverに期待していた役割自体も担えそうでしたのでシンプルにSystemd → Nodeにしました。
最低限の設定をイメージしてこんな感じになりました。“`:/etc/systemd/system/mydaemon.service
[Unit]
Description=My Node.js Daemon[Service]
User=myuser
Group=mygroup
#Environment=”NODE_ENV=production”
WorkingDirectory=/path/to/
ExecStart=/usr/bin/node app.js
Restart=always[Install]
WantedBy=mult
【React Native】簡単なAPI連携のアプリケーションを作成する ③ESLint+Prettierの導入(寄り道)
# はじめに
本記事は下記の記事の続編になります。
[【React Native】簡単なAPI連携のアプリケーションを作成する ①準備編](https://qiita.com/kazuki_yoshida/items/d5f47e4d39a9e54f091d)
[【React Native】簡単なAPI連携のアプリケーションを作成する ②住所検索の実装](https://qiita.com/kazuki_yoshida/items/cb7df8d51dc0e0c2f8de)
実践的なアプリを作成するというよりは、ハンズオン的にReact Nativeを触ってみるといった趣旨になっています。
なお思いついた順で記事にしているため、本来は実装を開始する②の前に
本記事の内容であるLintやフォーマッターを実施する方が好ましいのと、
今回の内容は必須ではないため、スキップしていただいても問題ないと思います。
(毎回アレ?ってなるので備忘で残したかったんです。。)## 本記事で実現すること
VSCode上でコードを編集後、Ctrl+sなどで保存するとシュバッと綺麗にしてくれる。
フォーマ
わからなかったワード
私がわかならなかったワードをアウトプットするだけの記事
## Nginx
静的なファイル、画像をpumaの前に返す## webpacker
Webpackerとは、Webpackを使用してRuby on Rails上でJavaScript開発をするために必要な一連のまとまりを、標準で実装することができるgemパッケージ(Rails6.0より、webpackerが標準実装)## webpack
CSSやJavaScript、画像などのプログラムを作成する際の部品であるモジュールを、1つのファイルとしてまとめるためのモジュールバンドラー。 Node.jsで、サーバーサイドで動く。 平たく言うと、WebpackはJavaScriptファイルのコーディングにおいて、開発を効率的におこなうことができるよう助けるような役割を担っている。## Simpacker(≒webpacker)
Webpacker は webpack を知らない人でも簡単に使えるというところがいいところだと思うのですが、もう少しシンプルに webpack とのインテグレーションだけをしてくれるツールがほしいと思