- 1. for、forEach、mapの使い方
- 2. Windows11のnpmをnpm-windows-upgrade(Powershell)でバージョンアップする
- 3. Heroku Postgresとアプリの接続設定
- 4. CloudStorageからダウンロードしたファイルの中身を取得
- 5. 一時的な障害に強いシステム(アプリケーション)を構築する
- 6. 果物の甘さを最大限に感じつつ、かまいたちで笑い転げて1日を終えたい(obniz×LINEBot)
- 7. 2-Node.js
- 8. Node.js Web アプリケーションを Docker で構築してみる
- 9. 1-Node.js立ち上げ
- 10. Logto:サインイン、認証、およびユーザーIDを数分以内に構築するためのオープンソースプロジェクト
- 11. Node.js: Yahoo 郵便番号検索API の使い方
- 12. Firebase(v9) から取得したIDトークンをサーバサイド(Node.js)で検証する
- 13. バージョン管理システム#2
- 14. ゼロからNode.js環境をHomebrew、nodenv経由で構築(MacOS)
- 15. パッケージ管理システム #1
- 16. Payment APIで支払い用のQRコードを発行するメモ PayPay for Developers
- 17. windowsでUbuntu,homeblew,nodebrewをインストール、VSCodeでTypeScript環境を構築する
- 18. Node.js+React+Herokuでアプリ開発環境を構築する
- 19. async/awaitを一言で説明する
- 20. DRY原則に効く!Node.js+ExpressによるAPIのMiddleware化
for、forEach、mapの使い方
### 動作環境
Node.js v16.14
Ubuntu20.4 (Vagrant + Windows10)### はじめに
JavaScriptで配列を処理する方法はいくつかあります。色々なパターンを試してみました。テストで利用する配列がこちらです。
“`node.js
var ary = [“aa”,”bb”,”cc”,”dd”];
“`### 内容
一番原始的なやり方がことらです。初学者であれば、まずは、このやり方が思いつくかと思います。この書き方でも、全然問題はありません。ただし、エレガントさに欠けるという言い方はできるかと思います。
“`node.js
for (let i = 0; i < ary.length; i++) { console.log("val=" + ary[i] + " idx=" + i ); } ``` 動作結果です。 ```node.js val=aa idx=0 val=bb idx=1 val=cc idx=2 val=dd idx=3 ``` 上記のfor文をエレガントに書くと、次のようになります。何がエレガン
Windows11のnpmをnpm-windows-upgrade(Powershell)でバージョンアップする
# はじめに
2022年8月某日、npxコマンドでReactアプリを作成しようとしたところWarningが表示されたので調べたところ、npm.cmdなどを書き換えれば解消できるとかnpmをバージョンアップすれば解消するとわかったので、自分で編集はできるだけしたくないのでnpmをバージョンアップすることにした。環境はWindows11でコマンド操作は基本Powershellを使う。
node.jsはv16.15.1をインストール済みである。npm/npx実行時のWarning
~~~console:
npm WARN config global `–global`, `–local` are deprecated. Use `–location=global` instead.
~~~参照した情報
https://stackoverflow.com/questions/72401421/message-npm-warn-config-global-global-local-are-deprecated-use-loc# 更新前のバージョン
バージョンアップする前の
Heroku Postgresとアプリの接続設定
# 目次
[1. herokuにデプロイした際の接続情報を設定](#1-herokuにデプロイした際の接続情報を設定)
[2. ローカルテスト時の接続情報を設定](#2-ローカルテスト時の接続情報を設定)
[3. DB接続のマネージャークラスを作成する](#3-db接続のマネージャークラスを作成する)
[4. node.jsでの記述](#4-nodejsでの記述)
# 1. herokuにデプロイした際の接続情報を設定
環境変数を管理する.envファイル追加する(アプリ作成フォルダに.envファイルを作成)
※ホスト名等はHerokuにログインしてアプリページからpostgresDBのページを開き、Database Credentialsのviewボタンをクリックして確認する
“` :.env
ENV_HOST = [ホスト名]
ENV_DB = [DB名]
ENV_USER = [ユーザー名]
ENV_PASS = [パスワード]
“`dotenvモジュールをインストールする
“`
$ npm install dotenv
“`アプリフォルダに新たにdbフォルダを作成
CloudStorageからダウンロードしたファイルの中身を取得
GCPのCloudStorageに設置されたバケット内にあるファイルの内容を取得する方法について説明します。
CloudSDKの[ライブラリ](https://www.npmjs.com/package/@google-cloud/storage)を使用して以下のコードで取得が可能です。“`Node.js
import { Storage } from ‘@google-cloud/storage’;
const bucketName = ‘test-qiita-bucket’;
const fileName = ‘test-file.txt’;
storage = new Storage();
const data = await storage.bucket(bucketName).file(fileName).download();
const contents = data[0].toString();
console.log(contents);
“`“`qiita:出力(ファイル内容)
test1
test2
“`<参考ページ>
[googleapi
一時的な障害に強いシステム(アプリケーション)を構築する
## 以下の記事を参照して頂ければと思います
https://note.com/shift_tech/n/n236a7e03c033
**※Qiitaの記事は全て個人的な記載であり、所属する組織団体とは無関係です。**
## 補足
ソースコード全体は以下。https://github.com/yuta-katayama-23/intro-vuecli/commit/a4f87435f7c34bae23cfa4f9ecfa450a94af371f
果物の甘さを最大限に感じつつ、かまいたちで笑い転げて1日を終えたい(obniz×LINEBot)
こんにちは~
みなさん果物はお好きですか?
私は1人暮らしを始めてもう10年くらいになっているのですが、
毎晩必ずと言っていいほど、果物を食べて寝ています。**そんな毎晩のルーティーンである
果物タイムで果物の甘さを最大限に感じつつ、今日も楽しかったと思えるために
obnizと温度センサー、LINEBotを使って作ってみました!**## どんな実装をしたのか
**①果物をより甘く感じるために温度センサーで食べごろ温度を測る**
果物はそれぞれ甘味を感じやすい温度があるらしいです!
なので果物を食べる前に温度センサーで温度を測り、
甘い果物を食べられるようにしました。今回はすいか・桃・マンゴーの適温を知れるよう設定しました。
**②今日も楽しかったと思えるために芸人の力を借りる**
大好きな芸人「かまいたち」が温度判定結果を画像で返すように設定。
でも、かまいたちはしゃべらないと面白くない!!!!
「食べてええで」の判定をしてくれたら
かまいたちのYoutube動画をランダムに送ってくれてるよう設定しました。## 完成したものはこちら
https://twi
2-Node.js
Node.jsで作成した機能は全部で7つある。
主に以下のyoutubeと書籍を参考にして作成した機能である。
プログラミング教室 Kikuチャンネル
「Node.js入門」
14 本の動画9,784 回視聴最終更新日: 2021/08/19「Node.js +SQlite3」
6 本の動画425 回視聴最終更新日: 2022/01/13Node.js超入門[第3版] (単行本)
著者 掌田 津耶乃 著
ジャンル IT系書籍 > プログラミング言語
書店発売日 2020/07/18
ISBN 9784798062433
判型・ページ数 B5変・468ページ
定価 3520円
(本体3200円+税10%)
その他 ダウンロード:有
https://www.shuwasystem.co.jp/
Node.js Web アプリケーションを Docker で構築してみる
## はじめに
以下の本を使って学習したので、その覚書です。
初学者には、とても分かりやすかったです。
1-Node.js立ち上げNode.js×Expressでにアプリ開発の手順書を記録しておく
1ファイルを作成
2ファイルにcdコマンドで移動する。
3以下のコマンドを実行する
“`
npm install express-generator -g
“`
実行が完了していれば、
4以下のコマンドも実行する。(pugをejsに書き換えている)
“`
express –view=ejs myapp
“`
5「myapp」というフォルダのなかに
・bin
・node_modules
・public
・routes
・views
フォルダと
・app.js
というファイルが作成される
6この後 appフォルダにcdコマンドで移動して、
“`
npm install
“`
を行う7
“`
npm start
“`
が実行できるようになる。
Logto:サインイン、認証、およびユーザーIDを数分以内に構築するためのオープンソースプロジェクト
TL; DR
ウェブサイト -> https://logto.io
リポジトリ -> https://github.com/logto-io/logto> Sorry if the grammar sounds weird since I used Google Translate for this article. You can check out the original English post [here](https://dev.to/gaosun/logto-open-source-project-to-build-sign-in-auth-and-user-identity-within-minutes-5bgi).
私は自分自身に問いかけました–なぜサインインを再度コーディングする必要があるのですか? この未解決の質問を念頭に置いて、私は約1年前に数人の開発者の友人とLogtoの構築を開始しました。
より良いサインインソリューションが私たち自身のビジネス上の問題をどのように解決できるかを調査しているときに、サインインの内訳が多くの人々が認識しているよりもはるか
Node.js: Yahoo 郵便番号検索API の使い方
参考ページ
[郵便番号検索API](https://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/zipcodesearch.html)“`js:get_address.js
#! /usr/bin/node
// —————————————————————
// get_address.js
//
// Jul/31/2022
//
// —————————————————————
‘use strict’
import * as https from “https”
import * as dotenv from “dotenv”console.error (“*** 開始 ***”)
dotenv.config()
const APPID = `${process.env.APPID}`const code_zip = proces
Firebase(v9) から取得したIDトークンをサーバサイド(Node.js)で検証する
# 概要
Express等で簡単に作ったAPIとの通信をセキュアにするため、Firebase Authenticationの“`getIdToken()“`メソッドを使おうと思ったら、v8でのnamespacedな書き方しか見つからなかったのv9でのmodularな記述方法を探した。実はv8っぽい書き方が動かないというのがそもそも勘違いだったのだが、v9っぽくモジュール化されたメソッドでも同様のことができるので、雑にだが備忘として残しておく。
## 出来上がり
最初に結論をば
web v9っぽいidTokenの所得方法はこう
“`v9.js
import { getAuth, getIdToken } from “firebase/auth”;const auth = getAuth()
const user = auth.currentUser
const idToken = await getIdToken(user, true)“`
ちなみに、公式ドキュメントにはこう書いてある
v9っぽい書き方ではないが、v9を使っていてもちょっと手直しすれば普通に動
バージョン管理システム#2
# npm インストールのオプションを使い分ける
前回の記事でpackage.jsonとpackage-lock.jsonの違いやnode_modulesをまとめました。今回は、
・npm install
・npm install <package>
・npm install -D <package>
・npm install -g <package>
の使い分けをまとめます。## npm install
用途・・・package.json及びpackage-lock.jsonが共有されていて、自分のディレクトリでまだpackageがインストールできていない時にnode_modulesを生成(packageをインストール)する。
もしくは、package.jsonが更新され、新たに全てのパッケージをインストールするとき## npm install <package>
ローカルインストール
用途・・・グローバルインストールでもdevインストールでもない時に使用する。基本的にはこのインストールコマンドを使用する。
packageは、.node_modules/.bin/配下にイン
ゼロからNode.js環境をHomebrew、nodenv経由で構築(MacOS)
# ゼロからNode.js環境をHomebrew、nodenv経由で構築
大学入学時に購入して何もわからず環境構築したMacBook Pro。
何かがおかしいと気づきつつ無理矢理使ってきましたが本当に限界を感じたので一旦出荷状態まで戻して全てを最初からやり直します。
**この記事ではNode.js環境をHomebrew、nodenv経由で構築していきたいと思います。**
一連の投稿のハブになる記事は[こちら](https://qiita.com/TakayoshiK/items/ae53424b788c8fcb645b)**参考にさせていただいた記事**
[MacにHomebrew経由でnodenvを導入する(+PHPStorm対策)](https://qiita.com/alice37th/items/989af6749264de50bb85)## 環境
MacBook Pro (13-inch, 2018)
macOS Monterey Version 12.5
メモリ intel Core i5
zsh 5.8.1 (x86_64-apple-darwin21.0)#
パッケージ管理システム #1
# パッケージ管理システム
## npm(Node Package Manager)とは?Node.jsで外部パッケージをインストールして使うためのマネージャ。
package.jsonを読み込んで、npmのリポジトリにパッケージを取りに行く。
npmを使うと、依存しているパッケージを一度にインストールできる。
似たようなパッケージ管理システムにyarnがある。
以前はBowerというものが使われていたが、今ではnpm,yarnが一般的。## package.jsonとpackage-lock.json
### package.json
自身のパッケージを管理するために使われるファイル
package.jsonは npm init コマンドによって生成される
インストールすべきパッケージのバージョンのの範囲や対応ブラウザのバージョン指定、npm-scriptなどが記入される。
また、package.jsonが存在するディレクトリにnpmを使って新たにパッケージをローカルインストールすると自動的にpackage.jsonの情報が更新される。※グローバルインストールでは記入されない
Payment APIで支払い用のQRコードを発行するメモ PayPay for Developers
## はじめに
この記事は、PayPay の Payment APIを利用して、決済用のQRコードを発行するまでの手順メモです。
## ドキュメント
https://developer.paypay.ne.jp/products/docs/webpayment
## インストール
“`bash
npm i request
“`## コード
下記のコードを`qr.js`として保存する。
“`js
var request = require(“request”);
var options = {
method: POST,
url: /v2/codes,
headers: {
‘Authorization’: ‘hmac OPA-Auth:‘,
‘X-ASSUME-MERCHANT’:,
‘Content-Type’: ‘application/json’,
},
body: { “amount”: 1000, “codeType”: “ORDER_QR”, “merchantPay
windowsでUbuntu,homeblew,nodebrewをインストール、VSCodeでTypeScript環境を構築する
## はじめに
windowsでubuntuを用いてhomebrew,nodebrewをインストール、nodeをインストールしてVSCodeでTypeScriptの環境構築を行うまで、調べたこと、作業したことをまとめました。
コマンドはすべて、WSL上で実行します。## Ubuntu、Homebrewをインストール
Ubuntuとは、Linux系のOS
Homebrewとは、パッケージ管理システム1. WSL(Windows Subsystem for Linux)の有効にする
1. Ubuntuをタウンロード、セットアップを行う
1. Homebrewをインストールする参考記事
・[HomebrewをWindows上で使えるようにする](https://www.techgaku.com/setup-homebrew-on-wsl/)
・[【完全版】Homebrewとはなんぞや](https://zenn.dev/sawao/articles/e7e90d43f2c7f9)## nodebrew、node.js、npmをダウンロードする
nodebrewとは、node.
Node.js+React+Herokuでアプリ開発環境を構築する
# 概要
フロントエンドにReact、バックエンドにNode.js(expressサーバー)を使ってアプリを構築し、それをHerokuにデプロイする開発環境を構築する# 目次
[1. Node.jsのインストール](#1-nodejsのインストール)
[2. Herokuのアカウント登録とインストール](#2-herokuのアカウント登録とインストール)
[3. gitをインストールする](#3-gitをインストールする)
[4. expressサーバーの準備](#4-expressサーバーの準備)
[5. reactの準備](#5-reactの準備)
[6. ローカル環境での起動](#6-ローカル環境での起動)
[7. Herokuへのデプロイ手順](#7-herokuへのデプロイ手順)
[8. アプリ実行](#8-アプリ実行)# 1. Node.jsのインストール
Node.js公式ページから推奨版のインストーラーをダウンロードする
[Node.js公式](https://nodejs.org/ja/ “Node.js公式”)
※2022/07/29現在の推奨版は16.16
async/awaitを一言で説明する
丁寧な説明は多いが結局なんだっけ?となったので一言にしてみた。
要するにasync/awaitとは、## asyncの中でawaitを使うと、promiseが返ってくるまで待ってくれる仕組みのこと
“`test.js
async function test(){
console.log(‘1’);
await setTimeout(() => {console.log(‘2 (非同期処理)’)}, 1000);
console.log(‘3’);
};
“`出力結果
“`
1
2 (非同期処理) // awaitしたので非同期処理でも記述順に実行される。
3// awaitしないと132となる。
“`## ということは、awaitを使いたくなったら最後にpromiseを返せばOK
“`testPromise.js
function testPromise(){
return new Promise(function(resolve){
// 何らかの非同期を含む処理
//
DRY原則に効く!Node.js+ExpressによるAPIのMiddleware化
こんにちは。GMSのバックエンドエンジニアの@yuyasan-goです。
Node.js のWeb Frameworkとしては古株ではあるものの、利用されている方もまだまだ多いExpress関連についてです。
軽量フレームワークであり新規導入のしやすさがメリットですが、サービスも成長して徐々にコードベースも大きくなるにつれて、エラー処理や同様処理が増えてくるケースも目にすることも多くなってくるのではないでしょうか。
今日はそういった状態になってきた際の「DRY原則に効く!Node.js+ExpressによるAPIのMiddleware化した」話について紹介します。# 全体構成
全体構成の概要図はこのような形となっています。
バックエンドの主な技術スタックは、Node.js + Express + MySQL(Amazon Aurora) + DynamoDBを採用しています。
![infrastructure.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/803671/cb59b33