Node.js関連のことを調べてみた

Node.js関連のことを調べてみた

[Javascript入門した]package.jsonの要素について

## このページについて
普段はデータエンジニアとして、python, SQLを主に使用しているが、業務でフロントやバックエンドを作ることになりそうなため、これまで手付かずだったJSを学習する.

あくまで自習の備忘録として書く.
人に見てもらうことを想定していない為、体系的な解説でもなく、中身も端折っているので悪しからず.

※但し数ヶ月後の自分はもはや他人なので、その時の自分が読んでもわかるように書く.

## package.jsonとは
Node.jsやjavascriptプロジェクトの設定ファイルのこと.
依存関係やスクリプトなどを管理するために使われる.
これがあることで、プロジェクトの構成を把握でき、他の開発者もプロジェクトのセットアップが簡単にできる.

## 構成要素
“`package.json
{
“name”: “node_js”,
“version”: “1.0.0”,
“main”: “index.js”,
“scripts”: {
“test”: “echo \”Error: no test specified\” && exi

元記事を表示

【募集】看護師を支援する技術共有プラットフォームの開発協力者募集

## コロナ禍で疲弊した元看護師が0から学習して挑戦。。
私は元々、コロナ禍のICUで看護師をしておりまして、医療崩壊の現場を経験しました。

おそらく、今はもうコロナは落ち着いて皆さんは普段通りの生活に戻っているとは思いますが、
急性期病院では、コロナ禍で疲弊した看護師の離職に対して今でも看護師の数が戻っておらず
変わらず疲弊した状態で働いている状態です。

私もその一人で、コロナ禍のICUで休憩なしで20時間働いた経験がなん度もあるほどでして
体調を崩し戦線を離脱しました。

体調を戻すための休暇として現在休んでいるのですが、
以前から興味があって独学で学んでいたコンピュータサイエンスの学習を再開し
何か医療現場のために作れたらなあ、と思い考え
思いついたものを開発しようとしているところです。

しかし、実務未経験であることやまだセキュリティやインフラ関係の知識に疎いので
一人ではすごく時間がかかると思い、ダメもとで募集をかけてみようと思った次第です笑

## 一緒に開発してくれる人を募集しています

**看護師を支援する技術共有プラットフォーム**を開発しようと考えています

元記事を表示

【個人開発】初めて個人でWebアプリ(レシピ管理アプリ)を作ってみた

## はじめに
半年間をかけて頑張って開発したレシピ管理アプリについて、備忘として記載します。
このレシピ管理アプリは、料理好きの方向けに開発したWebアプリケーションで、現在はローカル環境でのみ動作する形で作成されています。

![ログイン.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762672/a8556b0f-381e-81d3-b0fb-78f2bfbdd98f.gif)

## 1. 作ったツールの概要

### アプリの目的
– このレシピ管理アプリは、料理を愛する方々が個人の料理レシピを簡単に管理し、より多くの料理を作りたくなるような意欲やわくわく感を提供することを目的としています。ユーザーは自分の好みに合わせたレシピを記録・管理し、いつでもオリジナルの味を再現できるようにします。

### ターゲット
– 料理愛好家、家庭料理を楽しむ方、またはレシピをカスタマイズして管理したい方をターゲットにしています。年齢や性別を問わず、幅広い世代に向けたアプリです。

### 背景

元記事を表示

NodeJS入門

CodeMafiaさんの[Node.jsで学ぶWebシステムとソフトウェア開発基礎!Node.js完全入門ガイド
](https://www.udemy.com/share/107wK13@N109UUsvhAl6dCxmbJ97kKtUPbPi0Wiw8b5c6tJaCjC-FJsBn1dAE_3w2qTYptqM/)に入門したので忘れそーと思ったことなどを備忘録としてまとめました。
若干自分の言葉に変換してたり解釈が誤ってる可能性もあります。また、それは知ってるわーてことなんかは端折ったりもしていますので、前提がなくて分からないとか、そもそも信用ならないという方はぜひ受講をおすすめします。
CodeMafiaさんの講義は色々購入させていただいているのですがどの講義も他の方だとさらっと飛ばされるような所に一歩踏み込んで裏側の仕組みまで説明してくださる場面が多いのでめっちゃ面白くておすすめです。


[こちらCodeMafiaさんの他の講義](https://www.udemy.com/courses/search/?src=ukw&q=CodeMafia)

# Java

元記事を表示

TypeScriptでパスエイリアス”@types”を定義してはいけない理由

# 問題:”@types”を定義するとインポートエラーが発生する

型定義ファイルをまとめて格納するための、typesディレクトリがあったとします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/b6b64af5-6f40-cb17-b8ed-9c6f38fe01b3.png)

呼び出すたびにパスを直接指定するのは、保守の観点から望ましくないため、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/01d17e7a-2ba0-1e8d-79a9-42b85433be4a.png)

tsconfig.jsonへパスエイリアスを追加したとします。

“`tsx
import { Article } from ‘@types/article’;
“`

インポートを行うと

“`
型宣言ファイルをインポートできません。’@types/article’

元記事を表示

TypeScriptの実行環境をDockerで作る

## はじめに

Typescriptの勉強を始めたので、まずは実行環境を作りました。

nodejsの環境を作るだけですが、どなたかの参考になれば幸いです。

## やりたいこと

Typescriptの実行環境を作りたい

## 方法
Dockerfileでコンテナを起動

## Dockerfileの中身
NODE_VERでバージョン指定できます

“`
ARG NODE_VER=20.10.0
FROM node:${NODE_VER}

WORKDIR /usr/src/app

# コンテナ内で必要パッケージを追加
RUN npm install -g typescript ts-node ts-node-dev

“`

## docker-compose.ymlの中身

“`
ARG NODE_VER=20.10.0
FROM node:${NODE_VER}

WORKDIR /usr/src/app

# コンテナ内で必要パッケージを追加
RUN npm install -g typescript ts-node ts-node-dev
“`

元記事を表示

Google Spreadsheet APIを用いたNode.jsでのスプレッドシート操作

## 概要

この記事では、Google Spreadsheet APIを使ってNode.jsアプリケーションからスプレッドシートを操作する方法を解説します。具体的には、Googleのサービスアカウントを使用してスプレッドシートにデータを **書き込み**、特定のセルの値を **読み取る** という操作を行います。さらに、CLIからキーワードを入力し、スプレッドシート内のデータと比較・検索する処理を実装します。

## 期待した結果
A列2行目以降にハロースプレッドシートと書き込まれる
B列2行目以降に書かれている任意のテキストを検索して表示される

| Message | searchKeyword |
|:-:|:-:|
| ハロースプレッドシート |任意のテキスト |
| | |

## 依存パッケージのインストール

## 事前準備

### 1. Google Cloudでサービスアカウントの作成
1. Google Cloud Console にログインし、プロジェクトを作成します。
2. **APIとサービス > 認証情報** から「サービスアカウント」を

元記事を表示

【初心者】Node.js(Express)でHTMLを読み込もうとしたらCSSを拒否された件について

こんにちは。
最近になってNode.jsの勉強を始めたのですが、開幕早々躓いた点がありましたので備忘録として残しておきます。
ちなみに私はNode.jsのことを少し前までJavaScriptのライブラリの一種みたいに考えていた人間です……。
(だって……「~.js」みたいな表記してるから!)
もし何か間違っている箇所などありましたらご教授頂けますとありがたいです。

▼今回導入や実行に辺り参考にさせて頂いた記事です。ありがとうございます。

https://qiita.com/ryome/items/16659012ed8aa0aa1fac

***

さて、Node.js、Expressを導入してローカルサーバーを立ち上げる所までは順調に進んでおりました。
(Hello World!を表示させる定番のアレですね)
そして自分が制作していたWebページを表示させてみようと思い、
先程の記事を参考にHTMLを読み込ませる記述を書いてみました。
“`Node.js
// 静的ファイルの提供とキャッシュの有効化
app.use(express.static(‘/’, { maxAge: 8

元記事を表示

PostGISからベクトルタイルを作成する

# はじめに
[こちらの記事](https://qiita.com/k96mz/items/fdb410af634d91ee44d2)でPostGISデータベースを作成しました。今回は、作成したPostGISデータベースからデータを抽出し、ベクトルタイルを作成するところまでをやってみたいと思います。
[こちらの記事](https://qiita.com/T-ubu/items/146a86558281abac8b2e)を参考にさせていただきながら、本記事を記載します。node.jsのコードの書き方で推奨される記載方法に変化があるため、参考記事の書き方と、それを改良したコードの両方を書いていきたいと思います。
使用したレポジトリは以下です。
https://github.com/k96mz/20240917Postgis2vector

## 環境
macOS Sequoia 15.0(チップ:Apple M3)
zsh 5.9
PostgreSQL 16.4
PostGIS 3.4.2
node.js v20.15.1
npm 10.7.0

# レポジトリの準備
レポジトリを作成

元記事を表示

ユーザー新規登録処理を書いてみた(zod , node.js , mysql ) [備忘録]

## zod でのvalidation check

[前提]
next.jsでツイッターlikeなmusicpostアプリケーションを作成している。
今回tsでログインフォーム、新規登録フォームの処理を書いている。
色々苦労したのでまとめる。
tsのライブラリーであるzod , dbはmysqlを用いてユーザーの入力のチェック、新規登録を行う。mysqlの操作を少しでも覚えたいのでORMなどは使わない。


先に、完成版
以下からコードについて詳しくみていく。

“`typescript
import { NextRequest } from “next/server”;
import { NextResponse } from “next/server”;
import { formSchema } from ‘../../../validations/schema’;
import { ZodError } from “zod”;
import bcrypt from ‘bcrypt’;
import { db } from ‘../../../lib/db’;

e

元記事を表示

New Relic の Synthetic Monitoring (Scripted API) を使って RSS の情報を収集

 New Relic の Synthetic Monitoring の一つであるScripted APIを使用して RSS で公開されている情報を New Relic に収集する方法を紹介します。利用している SaaS の障害情報を New Relic にまとめておくことができるので増え続ける SaaS の業務アプリの状態をまとめて管理するといった活用方法が考えられます。

# 今回のポイント
この記事で紹介しているポイントは、次の2つです。
1. **Scripted API の使い方がわかる**
スクリプトの作成方法や参考になるサンプルの情報を紹介します。
2. **実行したスクリプトの結果を New Relic に保存する方法がわかる**
スクリプトの実行結果を New Relic のデータベースに保存して、NRQL でそのデータを確認する方法を紹介します。
:::note info
最新のアップデートの詳細はこちら
[New Relic アップデート一覧
](https://newrelic.com/jp/blog/nerdlog/new-relic-update “Ne

元記事を表示

何もしていないのに CI が壊れた

ある日、Dependabot が作成したライブラリアップデートの PR がコケていました。
コケていたのは VRT (Visual Regression Test) 、そしてその時私は別のプロジェクトを触っていました。

「まあライブラリのアップデートで見た目が崩れる事もあるよね、見た目となるとサクッと修正出来ない可能性が高いし一旦置いておくか。」

としばらく放置していました。

数か月後
CI がコケていたプロジェクトを触る機会がやってきました。

「そういえば、CI コケていたんだったなー、原因はなんだろな・・・ん??見た目が変わったことでコケているわけではないぞ、、、しかもローカルだと通るんだけど!??」

何もしていないのに GitHub Actions の CI が壊れた!

この記事で扱っている CI がコケた理由は私が扱っている環境等に依存するものでおそらくあまり遭遇しない物だと思います・・・つまり完全に誰得記事となっております。
なのでこの記事では問題の調査方法に焦点を当てて書いてみようと思います。
原因と解決方法だけ知りたい人(そんな人いない気がするけど)

元記事を表示

WSL2でAWSを使うための環境構築(Node/Python)

## 目次

– VSCodeのインストール
– WSL2(Ubuntu)の構築
– node.js環境構築
– python環境構築
– その他開発環境構築
– aws関係

## VSCodeのインストール

– Windows環境で行う
– インストール方法は省略
– WSLでの利用に備えて最低限以下のExtensionを入れる
[Remote Development](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack)

## WSL2(Ubuntu)の構築

### 参考記事
– 下記の記事が大変分かりやすいためそちらを参照
[WSL2 のインストールとアンインストール](https://qiita.com/zakoken/items/61141df6aeae9e3f8e36)

– 過去にUbuntu環境を作っていたがそのパスワードがわからなくなった場合
[wsl でパスワードを忘れてしまった際の対処](https://qiita.

元記事を表示

(Node.js) winstonモジュール、winston-daily-rotate-fileモジュールを理解する

# はじめに
node.jsのコードの中でwinstonモジュール、winston-daily-rotate-fileモジュールを使用する機会があったので、どのようなモジュールであるのか簡単にまとめたいと思います。

# winstonモジュールとは
Node.jsでよく使われるロギングライブラリで、アプリケーション内のログを効率的かつ柔軟に管理するためのツールです。アプリケーションの状態を追跡したり、エラーメッセージを記録したり、パフォーマンスをモニタリングするために使用されます。

## winston の主な特徴
– 複数のトランスポートをサポート:ログをファイル、コンソール、HTTP、あるいはリモートサーバーなど様々な場所に出力できます。
– ログレベルの設定:ログの重要度に応じて、出力するメッセージをフィルタリングできます(例:info, warn, error)。
– カスタマイズ可能なフォーマット:ログの出力フォーマットを自由に設定でき、タイムスタンプやカラーリングなどのカスタマイズも可能です。
– 非同期での動作:ロギングが非同期で行われるため、パフォーマンスに負荷をか

元記事を表示

Node.js ハンズオン 1 〜 3章まとめ

随分前に読んだ本ですが、再入門しようと思って読み直しています。
その内容を投稿しようと思っています。
自分の理解が浅いところだけまとめていますので、網羅的ではないですが備忘録として記事にしました!

# 第1章 イントロダクション
## クラス継承と `prototype` について
JavaScriptには、クラス継承を実現する仕組みとして `prototype` があります。各クラスには class.prototype.method という形でメソッドを追加することができ、オブジェクトがそのクラスのインスタンスかどうかを instanceof 演算子で検証できます。

また、`prototype` を使用することで、既存のクラスにメソッドやプロパティを動的に追加することが可能です。これは、後から機能を拡張したり、柔軟にクラスの振る舞いを変えたい場合に非常に有用です。

– `prototype` チェーン
prototype チェーンを利用すると、あるオブジェクトが継承している元のクラスの prototype に遡ることができます。例えば、以下のように prototype チェーン

元記事を表示

10月なので言語のサ終を確認しましょう

そろそろ10月.
iPhoneが出るような季節には,言語のバージョンも確認するのをルーティンにしたいですね….
サ終している環境でリリースや構築して面倒なことにならないために….

よく使う3種の言語について個人的にまとめておきます.

## Python

2024年10月のイベント

* 3.8 系が end-of-life(サポート終了)
* 3.13 系が prerelease

3.12 は9月末まで bugfix だったので,3.11 あたりをメインの開発環境に据えたいところ….

https://devguide.python.org/versions/

|version|status|firstRelease|end-of-life|
|:–|:–|:–|:–|
|3.13|prerelease|**2024/10/01**|2029/10|
|3.12|bugfix|2023/10/02|2028/10|
|3.11|security|2022/10/24|2027/10|
|3.10|security|2021/10/04|2026/10|
|3.9|se

元記事を表示

Gemini API ― File Upload/画像認識

# 概要
(日記)前回

https://qiita.com/shokkaa/items/a74bb2f9a3e843430530

の続き。Geminiに画像の説明などを求める。

# 環境
– Ubuntu 24.04
– Node.js v22.4.1

# Geminiに画像ファイルをアップロード
画像などのファイルをGeminiにアップロードする。
“`js:src/fileUpload.ts
import { FileMetadata, GoogleAIFileManager } from “@google/generative-ai/server”
async function main() {
const file = process.argv[2]
const fileManager = new GoogleAIFileManager(process.env.GOOGLE_API_KEY ?? “”)
const metaData: FileMetadata = { mimeType: “image/jpeg”, displayName: `

元記事を表示

(Node.js) hh-mm-ssモジュールを理解する

# はじめに
node.jsのコードの中で hh-mm-ssモジュールを使用する機会があったので、どのようなモジュールであるのか簡単にまとめたいと思います。

# hh-mm-ssモジュールとは
時間の表現を管理するためのシンプルなライブラリです。
toMs, toS は、時間をそれぞれミリ秒、秒に変換する関数です。
fromMs, fromS は、ミリ秒や秒から「時間:分:秒」形式に変換します。

# サンプルコード
“`javascript:hh-mm-ss.js
const TimeFormat = require(“hh-mm-ss”);

console.log(TimeFormat.toMs(“00:01”));
console.log(TimeFormat.toS(“02:00”));

console.log(TimeFormat.fromMs(3000));
console.log(TimeFormat.fromS(180));
console.log(TimeFormat.fromS(1800));
console.log(TimeFormat.fromS(180

元記事を表示

(Node.js) prettysizeモジュールを理解する

# はじめに
node.jsのコードの中でprettysizeモジュールを使用する機会があったので、どのようなモジュールであるのか簡単にまとめたいと思います。

# prettysizeモジュールとは
データのバイト数を人間が読みやすい形式に変換するための Node.js ライブラリです。ファイルサイズやデータの大きさを表示する際に、より直感的な形式(例えば KB、MB、GB など)で表現することができます。

# サンプルコード

“`javascript:prettysize.js
const prettysize = require(“prettysize”);

const result1 = prettysize(1024);
const result2 = prettysize(1024 * 1024);
const result3 = prettysize(123456789);
const result4 = prettysize(10000000000);

console.log(result1);
console.log(result2);
console.lo

元記事を表示

(Node.js) better-queueモジュールを理解する

# はじめに
node.jsのコードの中でbetter-queueモジュールを使用する機会があったので、どのようなモジュールであるのか簡単にまとめたいと思います。

# better-queueモジュールとは
Node.js環境で使用されるジョブ(タスク)キューを提供するためのモジュールです。主に、複数の非同期タスクを効率的に処理し、同時に実行されるタスク数を制御したい場合に便利です。シンプルかつ柔軟な設計で、並列処理、再試行、失敗時の処理、タスクの永続化などの機能をサポートします。

# サンプルコード
“`javascript:better-queue.js
const Queue = require(“better-queue”);

// キューの処理
const queue = new Queue((task, cb) => {
console.log(`Processing task: ${task.name}`);

// 非同期処理
setTimeout(() => {
if (task.name === “Task 2”) {
con

元記事を表示

OTHERカテゴリの最新記事