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

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

Node.jsで作るWebサイトのポイント、テンプレートエンジンとデータベース更にログイン認証

パート1「テンプレートエンジン ejsの使い方。」
webサイトの構築を考える上で必要なイメージはWordpress等を代表するサイトデザインのテンプレートを利用し、投稿の内容はデータベースへ保存し、当然のようにログイン機能でサイトを保守する。この様な機能を網羅したサイトを今更ですが、Node.jsで作る為のメモを記載して行きます。
基本的にPC内に、node,npm等が使用可能な環境で、編集はvscodeとします。(node v22.2.0 npm 10.7.0)
ファイル構成は下記。

server.jsは下記の様。
“`
//Imports
const express = require(“express”);
const expressLayouts =

元記事を表示

(Node.js) @mapbox/mbtilesモジュールを理解する

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

# @mapbox/mbtilesモジュールとは
Mapbox社 によって提供されている、Node.js 用のライブラリで、MBTiles 形式の地図タイルファイルを扱うためのツールです。MBTiles は、地図タイルデータを SQLite データベースにパッケージ化したファイル形式で、オフラインで地図データを提供する際にも使用できます。

## 主な特徴
MBTiles ファイルの読み込み・アクセス:
.mbtiles ファイルに保存された地図タイルデータにアクセスできます。これにより、地図アプリケーションでタイルを効率的に表示したり、オフライン地図を提供することが可能です。

タイルデータの取得:
ズームレベル (z)、x座標 (x)、y座標 (y) を指定して、対応するタイルデータを取得します。

非同期処理に対応:
非同期でタイルファイルを開いたり、タイルデータを取得したりできるため、Node.js ア

元記事を表示

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

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

# morganモジュールとは
Node.jsアプリケーションで使用されるHTTPリクエスト(レスポンスではなく!)のロギングミドルウェアです。ExpressなどのWebフレームワークと組み合わせて使うことが一般的で、アプリケーションに送られてくるリクエスト情報(メソッド、ステータスコード、URL、レスポンスタイム(厳密にはリクエストに対するサーバーの応答時間を指すがこの情報も含む事ができる)など)を簡単にログとして記録することができます。

## 主な特徴
・HTTPリクエストのログ
サーバーに送られるすべてのHTTPリクエストをログに残します。リクエストの情報を記録することで、アプリケーションの動作確認やデバッグに役立ちます。

・プリセットのログフォーマット
Morganは、combined、common、dev、short、tinyといったプリセットフォーマットが用意されており、すぐに使用できます。

・カスタムフォーマット

元記事を表示

ジョブカンの出退勤を行うAPIの作成【Google Cloud Functions】

## やりたいこと

iPhoneのショートカット機能を使ってジョブカンの出退勤を行いたかったのでメモ

## 流れ
iPhoneのショートカット機能でPOST送信を行う
引数として
・ジョブカンID
・パスワード
・出退勤パラメータ

以上を受け取り、ジョブカンのスクレイピングを行い
出退勤処理を行う

無料で使いたかったのでデプロイ先はGoogle Cloud Functionsとした

## コード

“`Node.js
const puppeteer = require(‘puppeteer’);
const dayjs = require(‘dayjs’);
const localeData = require(‘dayjs/plugin/localeData’);
const utc = require(‘dayjs/plugin/utc’);
const timezone = require(‘dayjs/plugin/timezone’);
require(‘dayjs/locale/ja’);

dayjs.extend(localeData);
dayjs.ex

元記事を表示

独り身で「おかえり」もなく寂しいので、玄関で歓声を浴びることにした

## 家に帰っても返事はありません
私は独り身のため、家に帰って「ただいま」と言っても、「おかえり」は返ってきません。
そこで、家に帰ったタイミングでテンションが上がるように、玄関で歓声を浴びることにしました。

HC-SR04という超音波センサー(写真上側)を用いて距離を測ることで、玄関を通ったかどうかを判断しました。

## 作成したもの
obnizに超音波センサーを繋いで、一定の距離より近くを通ると音声ファイルが自動的に流れるものを作成しました。

イメージは以下の通りです。

元記事を表示

Expressでjoiを使ってバリデーションを実装する

前回の記事では、Reactでバリデーションを実装してみました。

https://qiita.com/ngq299/items/47fbe64bd7201dc01a66

今回は、バックエンドでExpressにおいてJoiライブラリを使ったバリデーションの実装をしてみたいと思います。

### Joiライブラリの基本的な使い方

Joiライブラリは、データのバリデーションを簡単かつ強力に行うことができるツールです。
Joiのドキュメントを参照して、基本的な使い方を見てみます。

https://joi.dev/api/?v=17.13.3

まず、Joiライブラリを下記コマンドでインストールします。

“`
npm i joi
“`

下記コードを作成します。

“`javascript:index.js
const Joi = require(‘joi’)

const schema = Joi.object({
name: Joi.string().required(),
age: Joi.number().min(0),
location: Joi.string

元記事を表示

【serverless-framework】1から始めるexpressをAWS Lambdaにデプロイ

# はじめに
メモ用。調査からの急ぎで書いたモノなので間違っていればご指摘ください。
やるとこはタイトルの通り。今回、セキュリティ等は考慮していないのであくまで「形にしたい」という人だけおすすめです。
AWSアカウントの作成、`node`のインストールだけは事前にやっておいてください。

* `AWS`
* IAMでのユーザの作成と許可ポリシーの作成
* アクセスキーの作成
* CLIインストールとconfigure
* `serverless-http`
* プロジェクトの作成
* ローカルホストで起動
* デプロイ

# 環境
* MacOS – AppleM1チップ – 16GBメモリ – Sonoma14.5
* `npx version` – `10.8.3`
* `node version` – `v22.5.1`
* `serverless ϟ framework` – `4.4.3`

https://www.serverless.com/

# `AWS`
## IAMでのユーザの作成と許可ポリシーの作成

* IAMに

元記事を表示

Node.jsって何?どうやって使うの?

# Node.jsについて調べてみた
今回、アプリケーション開発にあたりNode.jsを使用することになったので
Node.jsについて調べてみました。

## Node.jsとは

Node.jsとはJavascriptの実行環境です。
Webアプリケーションのバックエンドを制御するため、
HTTPリクエストを処理することが主な仕事のひとつです。

## 使い方について
**1.Node.jsをインストール**

まず、以下のリンクからNode.jsをインストールします。

https://nodejs.org/en

**2.プロジェクトの初期化**

今回はappディレクトリを作成し、移動します。
“`
$mkdir app
$cd app
“`

その後、以下のコマンドを実行します。
“`
$ npm init
“`
このコマンド実行後、package.jsonというファイルが作成されます。

**3.アプリケーションファイルの作成**

javascriptを使用し、app.jsという名前のアプリケーションファイルを用意します。

**4.アプリケーション実行**

元記事を表示

【Node.js】ExpressとOpenWeatherMapAPIを用いて天気予報を取得してみた

## はじめに

UdemyのWeb Developer BootcampでNode.jsやExpressの学習を進めていた中で、試験的にWeb APIも使用して、
簡易的な現在の天気を検索するアプリを作成してみました。

## 概要
今回作成したのは、**OpenWeatherAPI** という気象情報を取得できるWeb APIを使用しました。
URLは[コチラ](https://openweathermap.org/)から。
ユーザー登録が済めばすぐにAPIキーの取得が可能です。

:::note warn
APIキーは有効化されるまで少し時間がかかるので注意してください。私は約20分ほどかかりました。
:::

無料版と有料版で、取得できる回数や日数が変わってきますが、今回は無料版を使用するため、現在の天気を取得していきます。(無料版APIでも1分間に60リクエストかつ1ヶ月100万リクエスト可能らしい)
検索ページで都市名を入力すると、その地域の気象情報を取得できる形にします。

## Node.js と Express
**No

元記事を表示

Node.js + Web3.jsを使用した機能検証用アドレス新規生成、残高照会、送金

はじめに

本記事はLinux/Unixサーバーを対象にGUIを使用できない環境で機能検証するためにEthereumまたはEthereum互換の別チェーン(例:Polygon、Fantomなど)上にアドレス新規生成、残高照会、送金の確認手順を解説します。ブロックチェーンの機能検証にお時間を多くかけたくない方におすすめです。

本記事では、Japan Open Chainという日本発のブロックチェーンをサンプルとして使用します。

※ Japan Open Chainについてはこちらの記事をご参考ください。
解説レポート〜「1分でわかる!Japan Open Chain」

必要なソフトウェア:
・Linux/Unix環境(本記事ではUbuntuを使用する)
・Node.js/npm
・ether.js
・fs.js
・readline.js
・path.js
・dotenv.js
・Web3.js
・秘密鍵(Metamaskなどからエクスポートしたものを使用)

元記事を表示

Node.js + Web3.jsを使用した機能検証用NFTミント、照会、移転、焼却

はじめに

本記事はLinux/Unixサーバーを対象にGUIを使用できない環境で機能検証するためにEthereumまたはEthereum互換の別チェーン(例:Polygon、Fantomなど)上にNFTミント、照会、移転、焼却の確認手順を解説します。ブロックチェーンの機能検証にお時間を多くかけたくない方におすすめです。

本記事では、Japan Open Chainという日本発のブロックチェーンをサンプルとして使用し、SolidityでERC721標準に基づいたNFTスマートコントラクトは既にデプロイした状態の確認手順となります。

※ Japan Open Chainについてはこちらの記事をご参考ください。
解説レポート〜「1分でわかる!Japan Open Chain」

※ デプロイ済みのスマートコントラクトについてはこちらの記事をご参考ください。
【個人開発】Webアプリ制作

今年の4月から、半年かけて、Webアプリケーションを1から作成しました。
作成したのは「家計簿アプリ」です。

## 1. ツール概要
#### ①アプリの目的
現金の入出金を管理および、1ヶ月における家計の入出金を把握できる「家計簿アプリ」を目的として、作成しました。

#### ②アプリ作成背景
個人的な話になりますが、私は家計簿をつけるタイプです。

現在も家計簿をつけるために使用している家計簿アプリがあるのですが、このアプリがサービス改悪を行い、データの閲覧期間が、[全期間]→[直近1年間]へ変更となりました。
(調べれば私が使用しているアプリがばれそうですが。)

このことから、”自分が使うため” に家計簿アプリの作成を行いました。

#### ③アプリ使用者
②で書いた通り、自分自身です。ほかに使用者は全く想定していませんでした。
(このことから、CSS等は全く手を付けていません。自分が使えればOKの精神で作成進めていました。)

さて、概要を記載したところで、次はアプリの機能について記載します。

## 2. 機能一覧
機能一覧として具備している機能は下記のとおりです。

元記事を表示

【初めての個人開発】『これおれがわるいんか?』- 超局所的SNS

# はじめに

デプロイはしているものの、リリースというほど大そうなものではありません。
納得できる品質には達していませんが、どんな機能を実装したのか、
自分なりにおさらい/デモンストレーションしてみようという趣旨の記事です。

季節の変わり目による風邪のフルパッケージに見舞われた状態で執筆します。

https://koreore.vercel.app/

(使ってもらえたら嬉しいです)

# 自己紹介
東京都在住、29歳男性。Webディレクター/CC字幕制作エディターの経験あり。
現在はWebエンジニアへのキャリアチェンジに向けて学習~就職活動中です。
今回の開発も、就職の役に立てばと思い作り始めました。

# Webサービス概要
X(旧Twitter)ライクなSNS。

タイムラインには、ユーザーが経験した
「これおれがわるいんか?」と言いたくなるような理不尽な出来事が流れてくる。

それを “わるくない” と “う~ん” の二択で評価する/される。

※実際の画面
![image.png](https://qiita-image-store.s3.ap-no

元記事を表示

Node.js環境構築ではまったこと

# :writing_hand: はじめに

こんにちは。環境構築Lv.1の私です。
今回はTypeScriptで組んだプログラムの動作確認環境が欲しく、以下記事を参考にNode.js環境(バージョン管理には NVM for Windows)を構築しました。

– [nvm-windows の導入と簡単な操作をやってみた](https://qiita.com/akipon0821/items/eaeffe79221cfcd4d258)
– [Windows への Node.js(npm)のインストール](https://qiita.com/gahoh/items/8444da99a1f93b6493b4)

基本的には上記記事の手順で大丈夫だと思うのですが、
自分のローカルの都合なのか所々うまくいかず、あれ?となったところがあったので備忘とします。

– nvmがうまくインストールされなかった
(nvm versionコマンドでバージョンが表示されない)
– node, npmがうまくインストールされなかった
(node -v, npm -vコマンドでバージョンが表示されない)

#

元記事を表示

特定のLambdaを指定した時刻に実行する(Node.js)

Lambdaで、自分自身を1分後に呼び出せるようにしてみました。

## 要約
– EventBridge Schedulerを使用
– 2種類のロールを用意する必要がある
1. 実行ロール
1. EventBridgeのスケジュールに付与するロール
– 作成しようとしているスケジュールと同名のスケジュールがあるとエラーになるので、先に削除が必要

## IAMロールの用意
### 1. 実行ロール
Lambdaで実行する場合、Lambdaの実行ロールに下記を含める
“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “Statement1”,
“Effect”: “Allow”,
“Action”: [
“scheduler:CreateSchedule”,
“scheduler:DeleteSchedule”,

元記事を表示

個人開発で会計アプリを再度開発しました!

## 各種リンク
アプリケーション
https://accounting-app-six.vercel.app/login

Github
https://github.com/nobu0605/accounting-app

## 開発した理由
自分はエンジニアになる前に3年半バックオフィスの仕事をしていました。
今でも会計に興味があるので、今回開発しました。

4年前にも同様のアプリを開発しました。現在は動いていなく、今回新規で改めて開発しました。
https://qiita.com/nobu0605/items/14320342f66bc718e2a5

## 機能
・収益と費用
![画像の説明](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vav0qjyv7voemgivi64s.png)

・仕訳入力
![画像の説明](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/36g75qec7wxb58qtij49.png)

・財務レポート
![画

元記事を表示

Prismaを使った型安全なデータベース操作

## Prismaとは?
Node.jsやTypeScriptを使用したアプリケーション開発で、データベースとのやり取りを簡素化し、型安全なデータベース操作を実現するためのORMです。ざっくり分かりやすく言うと、SQLを書かなくてもデータベースとやり取りがでできるツールになります。

Node.js自体には、リレーショナルデータベースに対して直接アクセスするための標準的なライブラリや統一されたインターフェースが存在しないので、データベースとの通信はNode.jsで一貫した方法で行うわけではなく、各データベースごとに異なる方法を使う必要があります。

そこでORMを使うことで、データベース操作を統一的に行えるようになり、異なるデータベースに対しても同じコードやメソッドで操作ができるようになります。

## 基本的な使い方

Todoアプリを前提として、Prismaの基本的な使い方を説明します。

### 1. Prismaスキーマの作成
Prismaスキーマは、データベースモデル、データソース、Prisma Clientの設定などを定義するファイルです。これをもとに、Prismaはデータ

元記事を表示

markdownで予定管理できる markwhenを使ってみた

# 使ってみるに至った理由
markdownでタイムラインやカレンダーなどのスケジュール管理ができるということで面白そうだと思った🤔
markdownで書けるので、Github管理もできるし良さげかも❓️

# markwhen is 何❓️
[Markwhen](https://markwhen.com/) はテキストをタイムラインに変換するツールです。
マークダウン風のテキストを書くと、見栄えの良いタイムラインやその他のビジュアライズが可能です。
👇️この方のポストで見つけました。 @miyattiさん、ありがとうございます!

元記事を表示

[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時間働いた経験がなん度もあるほどでして
体調を崩し戦線を離脱しました。

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

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

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

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

元記事を表示

OTHERカテゴリの最新記事