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

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

firebase-admin initializeApp の違い


firebase-adminのinitializeAppについて、「書き方いろいろ出てくるけど何が違うんだ?」と思ったのでまとめる。

:::note
cjsで書いたけどだけどemsでも同じ
最近はmoduleベースもあるのでimport方法は異なる場合あり。
:::

## Pattern 1
“`js
const admin = require(‘firebase-admin’);
const app = admin.initializeApp()
“`
GCPで動かしている場合のみ動くとのこと。

>アプリケーションが Google Cloud 環境内で実行されていて、その環境にサービス アカウントが接続されている場合、アプリケーションはそのサービス アカウントの認証情報を取得できます。
https://cloud.google.com/docs/authentication/production?hl=ja

他にもemulatorで動かしたい時はこれで良い。
“`js
if (process.env.NODE_ENV === ‘production’) {

元記事を表示

DiscordのWebhookでNotionのURLがうまく表示されない件の対応メモ

こんな感じの通知を送りたいなと思った時にWebhookで送信するとうまくいかなかったという話です。

– 理想
> ![スクリーンショット 2023-08-05 17.38.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/35387/9d58ea17-69ef-53fd-b189-ef7b5fc3c880.png “スクリーンショット 2023-08-05 17.38.34.png”)

– 現実
> ![スクリーンショット 2023-08-08 23.29.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/35387/6225e0f6-ed7b-42da-1840-20785c086c00.png “スクリーンショット 2023-08-08 23.29.57.png”)

こんな感じでURLがうまく表示されません。

表示されないだけでなくクリックしても無効なリンクになってしまっています。

## Notion

元記事を表示

nodeのError: error:0308010C:digital envelope routines::unsupportedの対処法

# はじめに
いつも通りnpm startしたところタイトルのエラーが出たので調べました
おそらくまた遭遇すると思うので備忘録に。

# 前提
nodeのバージョン:18.17.0
npmのバージョン:9.6.7

# 原因
原因はunsupportedで文字通り対応していないとのこと。
自分はNodeのバージョンを下げることで事なきを得ました。

# バージョンの下げ方
自分はfish環境なのでfishでの場合のみ記述します。

### 1.fisherのインストール
まずnvmをインストールするためにfisherをインストールします。
“`fish:fish
$ curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher
“`

### 2.nvmのインストール
Nodeのバージョン管理ツールのnvmをインストールします。
“`fish:fish
$ curl -o

元記事を表示

Spring Boot + React を使用してアプリを作成してみた【】

## 参考サイト
[Spring Boot と React JS を使用した、スクラッチからクラウドまでのフルスタック コース。](https://itplusjp.udemy.com/course/desenvolva-aplicacoes-completas-com-spring-boot-e-react-js/learn/lecture/16131829#overview)

元記事を表示

Azure Container Apps (ACA) に Node.js Express カスタムコンテナイメージをデプロイする

# Azure Container Apps (ACA) に Node.js Express カスタムコンテナイメージをデプロイする

こんにちは、株式会社船井総研デジタルの @fsdg-adachi_h です。今回は、Azure Container Apps 環境で、Node.js Express Web アプリケーションをコンテナとして起動する方法を紹介します。
![express_on_azure-container-apps.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3206449/8c0f6394-4c69-022a-771e-ecdae958259b.png)

## 目的

Windows 11 の Linux でクラウド開発します。

こちらから記事の一覧がご覧いただけます。

https://qiita.com/fsdg-adachi_h/items/6119ab05d8b13527efd8

## 実現すること

Microsoft Azure Container Apps (

元記事を表示

Node.js + LambdaでDDNSのIP紐づけが切れていないか監視する

#### DDNS(ダイナミックドメインネームシステム)って?

DDNS(ダイナミックドメインネームシステム)とは、動的に割り当てられているIPアドレスとドメイン名を紐づけてくれるものです。

https://ja.wikipedia.org/wiki/%E3%83%80%E3%82%A4%E3%83%8A%E3%83%9F%E3%83%83%E3%82%AF%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%8D%E3%83%BC%E3%83%A0%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0#:~:text=%E3%83%80%E3%82%A4%E3%83%8A%E3%83%9F%E3%83%83%E3%82%AF%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%8D%E3%83%BC%E3%83%A0%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%20(Dynamic,%E7%AE%A1%E7%90%86%E3%81%99%E3%82%8B%E4%BB%95

元記事を表示

Docker 環境で Node.js Express Webサービスを起動する

# Docker 環境で Node.js Express Webサービスを起動する

こんにちは、株式会社船井総研デジタルの @fsdg-adachi_h です。今回は、WSL Ubuntu の Docker 環境で、Node.js Express Web アプリケーションをコンテナとして起動する方法を紹介します。
![express_on_docker.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3206449/c7babfed-3506-33be-4a6c-1d3279672537.png)

## 目的

Windows 11 の Linux でクラウド開発します。

こちらから記事の一覧がご覧いただけます。

https://qiita.com/fsdg-adachi_h/items/6119ab05d8b13527efd8

## 実現すること

ローカル環境の WSL Ubuntu の Docker 環境で、Dockerfile からビルドした Node.js Express Web サー

元記事を表示

【OCI】API Gateway経由でFunctionsで作成したAPIを呼び出してみる

# はじめに

今回はOracle Cloud Infrastructure(OCI)のFunctionsとAPI Gatewayを使って
簡単なAPIを作成する方法を紹介したいと思います。
※Functionsで実行される言語はNode.jsを使用します。

■実行環境(クライアントPC)
Windows10, Postman(REST APIを呼び出せるツールならなんでもOK)

■参考
・Functions
https://docs.oracle.com/ja-jp/iaas/Content/Functions/Concepts/functionsoverview.htm

・API Gateway
https://docs.oracle.com/ja-jp/iaas/Content/APIGateway/Concepts/apigatewayoverview.htm

■構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3493138/3a8bb43a-ce4e-0846-b7

元記事を表示

メモ: Promiseについて調べたまとめ

Node.jswを勉強していたらPromiseに出会ったので少し調べてみたまとめ。

# Promiseとはざっくり何

JavaScriptやNode.jsでの非同期処理の結果。

# Promiseを使って嬉しいこと

Promiseを使った非同期処理のコールバック処理が書きやすくなる。

# 使ってみる

“`node.js
‘use strict’;

// fetch Promiseを返す
// HTTPリクエストを実行
fetch(‘https://api.football-data.org/v4/competitions/PL/matches’)
// thenでコールバック処理を記述
.then((response) => response.json())
.then((data) => console.log(data));
“`

# 参考文献

– https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Using_promises
– https://www.tohoho-web.com/ex

元記事を表示

さくっとthree.jsを使って3D描画する

three.jsをインストールして、立方体を表示することを目標にします。
アプリケーションフレームワークには、Svelteを使用します!

# 特徴
WebGL APIをラッピングしているので、簡単な設定で3D体験が可能になります。
プリミティブ図形の表示や、DCCツール(BlenderやMaya)で制作した3DCGを読み込ませて表示できます。

# 準備するもの
– MacOS
– Nodeの最新バージョン
– VSCode
– Svelte(インストール方法は[こちら](https://qiita.com/penta-design-system/items/c9a2cc2dd496ae397a5b)にまとめています)

# Nodeの最新バージョン
※以前の記事でNodeのバージョン管理ツールからインストールする方法を記載しています!

# three.jsをインストール
“`
# three.jsインストール
npm install three

# TypeScript用の型定義(ts使うなら必須)
npm install -D type@three
“`

# 3DCG

元記事を表示

Nxv15でモノレポ環境構築備忘録

# 初めに
初めまして。フロントエンジニアのもっぴーです。

今回はNxv15の環境構築方法を備忘録として記載します。
後ほどv16の備忘録も書こうと思います。

今回構築する環境は下記の構成にします。
* フロントエンド:React
* バックエンド:Nest.js

https://nx.dev/

# Nx v15 環境構築

## Nxのワークスペースを作成
下記コマンドでNxのワークスペースを作成します。
“`
npx create-nx-workspace@15.9.4
“`

どの形式でワークスペースを作成するの?と聞かれるので、上から二番目の
`Integrated monorepo: Nx configures your favorite frameworks and lets you focus on shipping features.`
を選択します。
“`
Package-based monorepo: Nx makes it fast, but lets you run things your way.
Integrated mo

元記事を表示

WSL環境にNode.js環境を構築する

こんにちは。絶賛AWSをいじっている @masatomix です。
WindowsのWSL環境で [AWS CDK](https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/getting_started.html#getting_started_prerequisites)を使いたくて Node.js をセットアップしたときのメモ。

anyenv → nodenv → Node.js って順番で入れていってます。

### anyenvのインストール

公式( https://github.com/anyenv/anyenv#manual-git-checkout )を参考にインストールを進めていきます。

“`console
$ anyenv
anyenv: command not found

$ git clone https://github.com/anyenv/anyenv ~/.anyenv

Cloning into ‘/home/sysmgr/.anyenv’…
remote: Enumerating objec

元記事を表示

GitHub Codespacesでの実行か、GitHub Actions上での実行かを環境変数で判定する

GitHub Codespacesで開発して、GitHub Actionsにデプロイするときにデプロイ先なのかローカル(とは言わなそう)なのかの判定をして処理を振り分けたい時があります。

## コピペ用振り分け

こんな感じで環境変数で振り分けができました。 2023/8/4時点の環境なので仕様が変わる可能性はあります。

“`js

if(process.env.CODESPACES){
//Codespacesでの実行
}else if(process.env.GITHUB_ACTIONS){
//GitHub Actionsでの実行
}
“`

## それぞれ独自の環境変数

GitHub Codespacesの場合は環境変数に`{“CODESPACES”: ‘ture’ }`があり、GitHub Actionsの場合は`{“GITHUB_ACIONS”: ‘ture’ }`が入っています。

– Codespaces

> ![スクリーンショット 2023-08-04 17.57.50.png](https://qiita-image-store.s3.ap-n

元記事を表示

Notion APIでロールアップのカラムの検索をする

https://www.npmjs.com/package/@notionhq/client こちらの公式のSDKを使って試していて、

学籍番号で学生の検索をかけようとした時の話題です。

## 文字列プロパティからロールアップになる現象

元々は文字列で直接入ってましたが、管理する上でデータ定義がされていくとDBが分かれてリレーション/ロールアップになっていくのは必然な気もします。

元々は以下のような指定で学籍番号にPEO05が含まれたら検索するといった検索をしていました。

“`js
const res = await notion.databases.query({
database_id: studentDBId,
filter: {
or: [
{
property: ‘学籍番号’,
rich_text: {
contains: “PEO05”
}
}
],
},
});
“`

データベースの正規化によ

元記事を表示

Node.jsに関してChatGPTに聞いてみたメモ

:baby_bottle:Node.jsを日常に例えると?

:robot:Node.jsを日常に例えると、レストランのキッチンに似ています。レストランのキッチンでは、オーダーを受けて料理を調理し、出来上がった料理を提供する役割があります。Node.jsも同じように、ウェブアプリケーションやサーバー上での処理を担当し、データの処理や情報の提供を行います。
1. **オーダーを受ける**:
レストランのキッチンでは、ウェイターやウェイトレスが顧客から注文を受けます。Node.jsもクライアント(フロントエンド)からのリクエストを受け付けます。

2. **調理と処理**:
キッチンでは、シェフが注文に合わせて食材を調理し、料理を仕上げます。Node.jsもリクエストに対応するためにデータベースの操作やロジックの処理を行います。

3. **提供**:
キッチンから出来上がった料理が出てきて、顧客に提供されます。Node.jsも処理が完了したデータや情報をクライアントに提供します。

4. **複数のオーダーを同時に処理**:
キッチンでは複数の注文を同時に処理する

元記事を表示

CDKでNode.jsのLambda関数を作るときにjs|ts以外のファイルをバンドルする

# TL;DR

`bundling.commandHooks.beforeBundling`
を定義して、その中で`cp`でコピーしてあげればOK!

“`ts
new NodejsFunction(this, ‘lambda’, {
runtime: Runtime.NODEJS_18_X,
architecture: Architecture.ARM_64,
functionName: ‘my-nodejs-function’,
handler: ‘handler’,
entry: ‘lambda/index.ts’,
bundling: {
commandHooks: {
beforeBundling(inputDir: string, outputDir: string): string[] {
return [`cp ${inputDir}/lambda/hoge.txt ${outputDir}`];
},
afterBundling(): string[] {
retu

元記事を表示

Stripe BillingでサブスクリプションをWebアプリに組み込む

# 目的
* 本記事は、Stripeでサブスクリプションを実装する時に必要となったノウハウを整理します
* 決済画面で購入をしてから、退会をするまでの範囲について、どのように決済状態を識別するのか。対象のユーザをどう識別するのか。といった制御時に必要なパラメータなどについて最小構成を整理します
* 公式ドキュメントに準拠して進めます。実際にそれに沿って進める中で「Webアプリに組み込むにあたって課題になった」ポイントや、ドキュメントから読み解けなかった課題、などにフォーカスして、分かったことを共有します
* 記載内容について、もしよりベストプラクティスに沿った方法が別にあるようでしたら、ご助言いただけますと幸いです

# ゴール
* 購入してから解除されるまでの範囲で、apiレスポンスのどの値を見る必要があるのか。
* checkoutを行なったユーザとwebHookで取得したイベントの実施ユーザが同じであることをどう特定するのか
* 単純なコースのアップデートと、キャンセルをどのパラメータを見て仕分けるのか
* といった実装時迷ったポイントを整理します
* また、テストクロックで

元記事を表示

watsonxのAPIをNode.jsから呼び出してみる

# はじめに
前回の記事「[watsonxのAPIを呼び出せるようになるまで](https://qiita.com/katahiro/items/3258cd42226ed82268ac)」では、 `curl` コマンドを利用してwatsonxのAPIを呼び出すことを紹介しましたが、今回の記事では `Node.js` から呼び出す方法を紹介します。
本当はNode.js用のSDKが公開されていれば良いのですが、2023/8/3時点ではPythonしか無いので、Node使いとしてはSDK無しでの実装が必要です。

### 実行環境
– node: v18.17.0
– npm: 9.6.7
– os: windows 11

# コード紹介
とりあえずコード全文。
Node.jsのv18から `fetch API` が素で使えるようになったので、特にpackageにモジュールを追加していません。
ただ、v17以前の環境で動かす場合、 `node-fetch` のモジュールで置き換えても動作することは確認済です。
“`index.js
(async() => {
const WML_

元記事を表示

Node.jsでファイルの読み書き

## fsモジュール
fsモジュールは、Node.jsでファイルの読み書きを行うための基本的な関数を提供するモジュール。
今回はこれを使用して基本的なファイル操作を試してみる。

## 同期形式と非同期形式
fsモジュールが提供しているすべてのメソッドには、非同期形式と同期形式が用意されている。
非同期処理を利用すると、処理の完了を待つことなく受付の完了のみを応答するため、エンドユーザーに対する応答性の改善や処理能力の改善を図ることができる (=メリットが多い)ため、処理内容が非同期処理でも問題ない処理であれば、非同期処理を選ぶと良いらしい。

## 事前準備
fsモジュールを呼び出しておく。
“`
const fs = require(“fs”);
“`

## ファイルの内容を読み込む
ファイルの内容を読み込みたい場合は、readFileSyncメソッドを使えば実現できる。
ファイルの読み書きは存在の有無や権限、ファイルシステムの違いなどによって例外が発生しやすいので、必ずtry~catchでエラーハンドリングを行う。
文字コードを指定したい場合、第二引数で直接指定できる。今回

元記事を表示

さくっとSvelteインストール

さくっとSvelteをインストールして、デモページを表示することを目標にします。

# 特徴
仮想DOMを使用しないため、パフォーマンス良く、バンドルサイズを少なくできます。

# 準備するもの
– MacOS
– Nodeの最新バージョン
– VSCode

# Nodeの最新バージョン
※以前の[記事](https://qiita.com/penta-design-system/items/4139dd63ae54ab0d1c35#node%E3%81%AE%E6%9C%80%E6%96%B0%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3)でNodeのバージョン管理ツールからインストールする方法を記載しています!

# SvelteKitをインストール
Svelteのコンパイラを使用するUIフレームで、SvelteとViteで構成されています。
VueでいうところのNuxtになります。

“`
npm create svelte@latest svelte-samlple
“`
オプション選択

“`
◇ Which Svelt

元記事を表示

OTHERカテゴリの最新記事