Node.js関連のことを調べてみた2022年05月04日

Node.js関連のことを調べてみた2022年05月04日
目次

HerokuでGoogle認証情報・環境変数を扱う方法

# HerokuでGoogle認証情報・環境変数を扱う

## 前置き
通常ローカル開発環境では.envファイルにkey:valueペアの定数を定義したり、Google APIの認証情報をJSONファイルに保持していたりするが、HerokuなどのPaaSでGithubリポジトリ連携する場合、資格情報を公開しない状態でアプリ側で扱えるようにする必要がある。

Google資格情報のJSONファイルの一例:
![gcredentials_hidden.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2395846/7955b169-1fcc-9a17-4adc-4df7c327017c.png)

“`bash
$ heroku config:set GOOGLE_CREDENTIALS=”$(< /home/charles/Programs/heroku/google-credentials.json)" --app "myapp" ``` ## Herokuでの確認 のSettingsタブ > Con

元記事を表示

CloudFunctionsのデプロイエラーの対処方法 error fetching storage source: generic::unknown: retry budget exhausted (3 attempts): fetching gcs source: unpacking source from gcs: source fetch container exited with non-zero status: 2

こんにちは。[virapture株式会社](https://virapture.com)の[もぐめっと](https://mogmet.com)です。

本日はCloudFunctionsのトラブルシューティング記事になります。

結論から言うとnodeのバージョンを変えよう!というお話になります。

## 問題の発生

ある日M1 macの環境でCloudFunctionsをデプロイしようとしたら下記エラーでデプロイができませんでした。
“`
functions[onCreate(asia-northeast1)]: Deployment error.
Build failed: Build error details not available.Please check the logs at https://console.cloud.google.com/cloud-build/builds;region=asia-northeast1/xxx-xxx-xxx-xxx-xxx?project=xxx. Please visit https://cloud.google.com

元記事を表示

JavaScriptでAzure Table Storageを操作する

JavaScriptでAzure Table Storageを使用するには、2022年5月現在、[**@azure/data-tables**](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/tables/data-tables)というライブラリを使用します。(従来は、[**azure-storage**](https://github.com/Azure/azure-storage-node)というライブラリを使用していましたが、現在は非推奨となっています。)

# 利用可能な環境

[GitHub](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/tables/data-tables#prerequisites)には、

> Currently supported environments:
> * LTS versions of Node.js
> * Latest versions of Safari, Chrome, Edge and Firefo

元記事を表示

Node.jsで「Error: getaddrinfo EMFILE」というエラーが出る

Docker上でNode.js + Nuxt.js + log4js-nodeで開発したアプリケーションを稼働したときの障害に対してどのように原因追求したかの記録

# 事象
Docker上にNode.js + Nuxt.js + log4js-nodeで構築したフロントエンドアプリとバックエンドアプリの間のHTTP通信が稼働2~4週間後に通信不能となった。

![Qiita_SystemPlatfrom.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1793264/f961e197-1be5-3073-e60f-c72869e7f320.png)

スタックトレースとしは、下記を得ている。
“`text:Stack traces
[ERROR] Error: getaddrinfo EMFILE backend-service
at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:72:26) {
errno: -24,
c

元記事を表示

ESP32をActions on Google Homeの音楽プレイヤにする

M5Core2を「OK Google」から操作できる音楽プレイヤにします。
Google Smart Homeのデバイスタイプ「メディアリモコン」を実装します。
また、応答速度を速めるために、ローカルフルフィルメントに対応させます。

もろもろのソースコードは以下にあります。

poruruba/MusicSmartHome_Google

https://github.com/poruruba/MusicSmartHome_Google

全体的な流れを示します。
まずは、セットアップ時です。ユーザが、スマホのGoogleのHomeアプリから、デバイスのセットアップをするときのフローです。
ちなみに、後述する自作のスマートホームサーバの登録は済んでいる前提です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261826/231dd5b8-b669-04b9-33c9-dec6683db84a.png)

①セットアップ開始
 GoogleのHomeアプリから、デバイスのセットアップ

元記事を表示

win11にしたらエイリアスが使えなくなった。error: `fnm env` was not applied in this context. Can’t find fnm’s environment variables

win11にしたら急に登録してたエイリアスが使えなくなった。

原因は、パワーシェルが読み込むファイルのパスが変わったかららしい。

上記コマンドを実行するとパワーシェル立ち上げ時にどこのファイル読み込んでいるかわかる
> $Profile

win10だと
%HOMEPATH%/Documents/WindowsPowerShell/Microsoft.PowerShell_profile.ps1
win11だと
%HOMEPATH%/Documents/PowerShell/Microsoft.PowerShell_profile.ps1
になる。

fnmをinstallして使おうと思ったらこのエラーが出た。
Microsoft.PowerShell_profile.ps1にenvの設定してるのにずっと
error: `fnm env` was not applied in this context. Can’t find fnm’s environment variables
って出るから、えってなってた。
こういうの気づきにくいからマジやめれ。。

元記事を表示

EC2内にexpressで立ち上げたサーバーへALPを介して接続する

## ec2内にローカルサーバーを立ち上げる

まずはnode.jsとnpmをインストールします。
[公式の手順](https://docs.aws.amazon.com/ja_jp/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html)を参照してさくっと完了。
一応コマンドで確認しておきます。
“`
node -v
npm -v
“`

適当なディレクトリを作成し、expressをインストール。サーバ用jsファイルも作成します。
“`
mkdir sample
npm i express
vi index.js
“`

“` server.js
const express = require(‘express’);
const app = express();

app.get(‘/’, (req, res) => {
res.send(‘Hello’);
});

app.listen(3000, () => console.log(“Server started

元記事を表示

AWS Lambda HTTP APIでPOSTデータを取得・デコードする関数(関数URL対応)

## HTTP APIや関数URLでもPOSTデータを受け取りたい
手軽に実装できてお財布にも優しいHTTP APIですが、POSTデータを受け取るのに一手間必要です。
リクエストbodyはbase64エンコードされた状態で取得できるため、 デコード & jsonパースしてあげる関数を使えばOKです。

## コード
### Node.js
“`getBodyOnLambda.js
function getBodyOnLambda(event_body) {
let body_string_utf8 = Buffer.from(event_body, ‘base64’).toString(‘utf-8’);
//日本語が含まれる場合はdecodeURIする
//decodeURIComponentでは無くdecodeURIなのは、POSTされたデータの中に&が含まれているとJSON変換時にうまくいかないため
body_string_utf8 = decodeURI(body_string_utf8);
//パラメーター形式文字列のJSONへの変

元記事を表示

Angular + Bootstrapの環境構築(nvm導入編)

■nvmとは
nvmとは、node.jsのバージョンを管理するためのツール

■nvmインストール(Windows版)
1.[windows-nvm リポジトリ](https://github.com/coreybutler/nvm-windows#node-version-manager-nvm-for-windows
)を開いて、 「manual installation」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2353455/5d20c442-1e56-267b-edce-ff2c0f5486b6.png)
2.「Download nvm-noinstall.zip」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2353455/e78462f9-3d33-6e18-97ac-0b1cc369ee82.png)
3.「nvm-setup.zip」を

元記事を表示

GraphQL+NestJS+TypeORM+MySQLにHelloworldしてみた

## はじめに
GraphQL+NestJS+TypeORM+MySQLという構成でのアプリケーション開発の初期環境構築を試してみました。
MySQL以外は素人なので調べながらなんとか動く構成にしたという感じです。
誰かの参考になれば幸せです。

成果物はこちら

https://github.com/shinobushiva/nestjs-typeorm-ts-example/tree/step1

## 事前準備

`Node.js`, `yarn`, `mysql`をインストールしてください(説明は割愛します)

実行時の環境は次のとおりです。
“`
$ npm -v
8.8.0

$ yarn -v
1.22.4

$ mysql -V
mysql Ver 8.0.28 for macos12.2 on x86_64 (Homebrew)
“`

### Nest CLI のインストール
https://github.com/nestjs/nest-cli

次のコマンドを実行して `Nest CLI` をインストールします
“`
$ npm install -g @n

元記事を表示

ESP32からLINEメッセージとSlackメッセージを送信する

ESP32から、LINEメッセージやSlackメッセージの送信をします。
最初に、各メッセージの送信の方法を説明した後に、ESP32上のJavascript実行環境から送信する方法を示します。

# LINEメッセージ送信方法

便利なLINE Notifyを利用します。

以下、参考ページです。
 [京急線の運行情報をLINE Notifyする](https://qiita.com/poruruba/items/49956b3db54ca7689b8c)

まずは、以下をブラウザから開きます。

https://notify-bot.line.me/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261826/59e64789-bb6d-1c62-d863-910d4efbeb32.png)

右上のログインをクリックして、ログインします。その後、同じ右上のところから、「マイページ」を選択します。

連携中のサービスにいくつか登録されている状態ですが、最初は何も登録されていません。

元記事を表示

Docker Compose + Node でコンテナ内に node_modules を保持する

## 目的
Dockerfile で `npm install` などとすると,ビルドされたイメージ内には `node_modules` ディレクトリが作られることになる.しかし, Docker Compose で親ディレクトリにボリュームをマウントすると, `node_modules` ごと上書きされてなくなってしまう.

“`dockerfile:app/Dockerfile
FROM node

WORKDIR /app
COPY package*.json ./
RUN npm install # node_modules が作られる
“`

“`docker-compose.yml
services:
node:
build: ./app
volumes:
– “./app:/app” # node_modules が上書きされてしまう
“`

今まではこれを回避するために

“`
docker compose build
docker compose run npm install # ホスト側にも node_modules を作

元記事を表示

npmとは

## npmとは
Node.jsのパッケージを管理するシステム。
アプリケーションを作成する際に便利なパッケージをそのプロジェクト(フォルダ)にインストールして使用することができる。
パッケージとは、他のプログラムから利用することを目的としたクラスや関数などのプログラムのこと。

## npmの必要性
自分でダウンロードするパッケージには以下の問題がある

– 依存関係
– 競合関係

npmはこれらの問題を解決してくれる。

## package.jsonとは
プロジェクト(パッケージ)の構成、構造を示した設計書のようなもの。

# 参考記事
https://zenn.dev/antez/articles/a9d9d12178b7b2#npm%E3%81%A8%E3%81%AF

元記事を表示

Windows7でNode.js v14以上を動かしたい! あるいは、なでしこ3PC版 v3.3.3を使いたい!!!

# 発端
 なでしこ3は近頃、**ESModule化した次期バージョン**が発表されました☆

https://nadesi.com/top/

 まだテスト版とゆうことですが、早速使ってみなくては!

 web版についてはベツに問題ありません。
 しかも、v3.3.3で、HTML埋め込みでも「取り込む」文が使えるようになり、別ファイルのなでしこプログラムをライブラリとして使えるようになったので、[Javascript代わりに使う](https://qiita.com/kujirahand/items/a9ac3145a8d535a372dc)ことの利便性が飛躍的に向上し、現実的になりました~:heart_eyes:

 が! PC版(Win版)が動きません・・・
 (Win版とゆう言い方は、なでしこv1に対しても使われますが、ここではv3の[Windows用オールインワンパッケージ「nadesiko3win32」](https://nadesi.com/doc3/index.php?Windows%2FDownload)を指しています。PC版(Node版)とゆう言い方だと、他のOS同

元記事を表示

Nodeバージョン管理ツールをNodistからVoltaに移行してみた

今までNodeのバージョン管理ツールにはNodistを使っていたのですが、Nodistは2019年以降更新が無い状態です。

また、2020年12月に新しい管理ツールである[Volta](https://volta.sh/)がリリースされました。

そこで、この記事ではNodeバージョン管理ツールをNodistからVoltaへ移行する手順と、Voltaの主要な機能をご紹介します。

### はじめに
* この記事では、Winwdows 10での動作を前提としています。
* この記事で記載されている手順およびバージョンは2022年1月時点のものです。

### NodistからVoltaへの移行

#### Nodistのアンインストール
Voltaのインストールの前に、Nodistをアンインストールします。感謝!

Nodistをアンインストールするには単純にプログラムのアンインストールをするだけでは足りず、一部フォルダや環境変数も削除する必要があります。

1. 「プログラムと機能」からNodistをアンインストール
1. いくつか残っているNodist関連フォルダやファイルを削除

元記事を表示

【10分AWSハンズオン】ExpressをAWS Lambda+API Gatewayにデプロイする

# やること

Lambda 上の Express にアクセスできるようにする。

# 学べること

* サーバレス Express アプリケーションの作り方
* Lambda へのデプロイ
* API Gateway と Lambda の連携

# 扱わないこと

* Infrastructure as Code
* TypeScript
* CI/CD

# STEP 1 : Serverless Express

1-1. 適当なディレクトリに Node.js プロジェクトを作成し、必要なパッケージをインストールします。

“`sh
$ npm init -y
$ npm i express @vendia/serverless-express
“`

:::note warn
`Node.js` がインストールされている必要があります。
`n` という Node.js のバージョン管理ライブラリを使用するのがおすすめです。
Mac を使用している方で、Homebrew がインストール済みの方は、以下のコマンドで Node.js をインストールできます。

“`sh

元記事を表示

【discord.js v13 + Discord Player】よくあるmusic botを作成する

# はじめに
こんにちは、こんばんは、ナマステ
今までdiscord.js+@discordjs/voice+ytdl-coreでmusic botを動かしていたのですが、
[Discord Player](https://discord-player.js.org)を使用したところかなり便利だったのとQiitaにこれを使ってる記事が無かったので、備忘録がてら基本的な使い方を書きます
[Discord Developer Portal](https://discord.com/developers/applications)からアプリケーションを作成して~みたいな初っ端の手順は、他の記事が大量に転がってるので端折ります

# 前提
この辺知らないと途中で混乱するかも、知ってても文章がヘタクソだから混乱するかもゴメン
– JavaScript/Node.jsがとりあえず書ける
– discord.jsを触ったことがある
– discordのスラッシュコマンドを知っている([この記事べんり](https://qiita.com/gaato/items/55b32bc4777905ac162

元記事を表示

TypeScript + Node.jsの簡易プロジェクトセットアップ

## はじめに
スクリプトを作成しようとする際、毎回手順が曖昧になってしまうためまとめておこうと思います。
TypeScriptとNode.jsを用いたプロジェクトの設定手順を記載します。

## 環境
Mac OSを用います。 Node.jsとnpmはインストール済みのものとします。

## 手順
### 1. 作業ディレクトリの作成
“`bash:./
$ mkdir typescript-node-setup
$ cd typescript-node-setup
“`
### 2. npm初期化
“`bash:./typescript-node-setup
$ npm init
“`
### 3. TypeScript インストール
“`bash:./typescript-node-setup
$ npm i –save typescript
“`
### 4. Node.js型定義の追加
“`bash:./typescript-node-setup
$ npm i -D @types/node
“`
### 5. tsconfig.json設定
“`bash

元記事を表示

ExpressでREST APIを実装する時にreq/resのvalidationを楽に実装できるライブラリを使ってみた

## 以下の記事を参照して頂ければと思います

https://note.com/shift_tech/n/n66f43685f2f9

**※Qiitaの記事は全て個人的な記載であり、所属する組織団体とは無関係です**

## 補足
ソースコード全体は以下。

https://github.com/yuta-katayama-23/node-express/commit/7e5a64e54f99b7fb8019f89b6dbfe5846e205148

元記事を表示

【Serverless Framework】AWS Lambda構築手順

# まえがき
業務でServerless FrameworkでLambdaを構築する必要ができたので、構築手順をメモ。
# Serverless Frameworkとは
・Node.jsで記述したデザイン/設計書をもとに、各プロバイダ(AWS/GCP/Azure)上でサーバレスなリソースを構築できるフレームワーク。
# 環境構築
参考にさせていただいた記事。

https://serverless.co.jp/blog/25/

## Node.jsインストール
・Serverless Frameworkでは、Node.jsはv12以上が必要。

https://nodejs.org/ja/download/

## Serverlessインストール
“`
npm install -g serverless
“`
インストールされていることを確認
“`
% npx serverless –version
Framework Core: 3.15.2
Plugin: 6.2.2
SDK: 4.3.2
“`
「serverless」は長いので「sls」と省略してもOK。
“`

元記事を表示

OTHERカテゴリの最新記事