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

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

WindowsでのAngular環境構築(Node.jsのインストール~Hello Worldまで)

## Node.jsのダウンロード
以下サイトで最新バージョンのダウンロード。
https://nodejs.org/en/download

Windowsの一番上をポチっと。

## Node.jsのインストール
画面に従いNextを押下していく。
※今回はすべてデフォルト。

## バージョンとnpmの確認

コマンドプロンプトで以下のコマンドで確認できる。
“`
Node –version
npm –version
“`

◆参考

Windows、macOS、LinuxにNode.jsとnpmをインストールする方法

## Angularの最新をインストール
以下のコマンドを実行する。
“`
npm install -g @angular/cli
ng version //確認
“`

バージョンはこの通り。
“`
Angular CLI: 17.2.2
Node: 20.11.1
Package Manager: npm 10.2.4
OS: win32 x64
“`

## 統合開発環境(IDE)のインストール
Visual

元記事を表示

Mac(M1)のnodeバージョンアップ

## 背景
nodeのバージョンをあげずに放置していたらv16系だったので、バージョンをあげることにしました。
その際のまとめです。

## 現在のバージョン確認

### Homebrew

“`
$ brew -v
“`

### nodebrew

“`
$ nodebrew -v
“`

### Node.js

“`
$ node -v
“`

### npm

“`
$ npm -v
“`

## バージョンのアップデート

### Homebrew

“`
$ brew update
“`

終わったらちゃんと上がっているか先ほどのコマンドでバージョン確認。

### nodebrew

“`
$ brew upgrade nodebrew
“`

自分の場合はここでエラーが出ました。

“`
Error: Failure while executing; `/usr/bin/env cp -pR /private/tmp/d20240303-30797-co2iaz/nodebrew/. /usr/local/Cellar/nodebrew`

元記事を表示

Playwright 入門

# はじめに
この記事では、E2E テストツールの Playwright の概要や基本的な操作方法について記載します。

https://playwright.dev/

# Playwright の概要
Playwright は、Microsoft で開発が行われている E2E テストツールです。2020年にリリースされました。
複数ブラウザ・プラットフォーム・言語で利用可能などの特長があります。

他の E2E テストツールとしては、Cypress、Puppeteer などがあります。
Playwright は、2023年の後半から利用者数が伸びているようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318188/774db41f-bd67-5603-6323-c6d361e2cf3c.png)

https://npmtrends.com/cypress-vs-playwright-vs-puppeteer-vs-selenium-webdriver-vs-testcaf

元記事を表示

huskyのv8とv9の違いを確認しつつ、npm scriptsを理解する

# 概要
husky がずっとv4のプロジェクトがあるので、 Node.js のバージョンアップに合わせてアップデートをしようとしました。
2024/1/25にv9.0.1がリリースされていたので違いを確認しつつ、 npm について理解したことをまとめます。

# v8とv9の違い
Release Note

https://github.com/typicode/husky/releases/tag/v9.0.1

v9に変わり、インストール時のコマンドが一つで済むようになり、 .husky/pre-commit もシンプルになっています。

例えば、v8のインストール手順のコマンドは以下です。

“`bash
npm pkg set scripts.prepare=”husky install”
npm run prepare
npx husky add .husky/pre-commit “npm test”
“`

v9では上記のコマンドは以下で全て実行されます

“`bash
npx husky init
“`

他には、v9にあたり Node.js のv14とv16

元記事を表示

passport.jsでユーザー認証を実装してみた

## はじめに
Passportは、認証や認可を簡単に実装できるNode.js用ミドルウェアです。
非常に柔軟なPassportはExpressベースのWebアプリケーションで利用できるため、ローカル認証やTwitter、FaceBookなどの外部認証にも使用されます。
今回はその中のローカル認証機能を実装していきます。

・使用するライブラリのインストール
“`zsh:zsh
npm install passport passport-local bcrypt express-session
“`

## ストラテジの設定
はじめに、ストラテジの設定を行います。新しく`config`フォルダを作成し、その下の`passport.ts`ファイルに設定内容を記述します。

“`typescript:config/passport.ts
import passport from “passport”;
import { Strategy as LocalStrategy } from “passport-local”;
import { PrismaClient } from “@

元記事を表示

WebSocketをローカルで試す

仕事でwebsocketを使って試験をする必要があるということで、やり方を事前に調べておこうと思いました。

## ローカルでwsを立ち上げる
* まず、node.jsをインストールしておき、npm install wsにてwebsocketをインストールします
“`
// グローバルの場合は-g を付ける
npm install ws
“`

* 以下の処理を 例)server.jsとして保存します
“`js
const WebSocket = require(‘ws’);

// WebSocketサーバーを作成し、ポート8080でリッスンします
const wss = new WebSocket.Server({ port: 8080 });

// 接続時の処理
wss.on(‘connection’, function connection(ws) {
console.log(‘新しいクライアントが接続しました’);

// メッセージを受信した時の処理
ws.on(‘message’, function incoming(message) {
co

元記事を表示

node.js で VRT – PlayWright で Webページにアクセスしてスクリーンショットを撮影し、reg-cli で差分レポートを出力する例

# 事前準備

## npm インストール

`package.json` の例

“`json
{
“devDependencies”: {
“playwright”: “^1.42.0”,
“@playwright/test”: “^1.42.1”,
“http-server”: “^14.1.1”,
“reg-cli”: “^0.18.1”
}
}
“`

`npm install`

## Playwright セットアップ

`npm init playwright@latest`

質問にはてきとうに Yes と答えておく
image

# localでWebサーバーを起動しておく

## HTML

見た目の違うページを2個用意しておく

例:

`example1.html`

`

元記事を表示

Javascript Registry (JSR) とは

### 概要

JSRとはjavascriptのパッケージのためのレジストリです。npmやNodeとも互換性がありますが、npmを進化させたようなレジストリです。

### レジストリとは
パッケージ等を管理するストレージのようなものです。例えば `npm install lodash` をすると、通常はnpmに設定されているデフォルトのレジストリである `https://registry. npmjs.org/ ` からパッケージをインストールしようとします。

ここで注意すべきはパッケージ管理ツールとレジストリは別の概念であることです。`npm`コマンドはあくまでもパッケージ管理ツールであり、`npm`コマンドを使っていても実際にパッケージをインストールしてくるストレージは自由に設定可能です。この記事で紹介しているJSRは**レジストリ**であり、したがってnpmコマンドを使ってJSRからパッケージを取得することが可能です。

例えば企業などでは独自のレジストリを管理しており、npmコマンドなどでもデフォルトのレジストリが会社の管理するものになっているケースも多いと思います。

元記事を表示

Node.js – npx なら package.json で管理している node モジュールのコマンドを直接実行できる

# 概要

npxをインストールしておけば、 package.json で管理している node モジュールを直接コマンド指定で実行できる

## インストール

“`
npm install -g npx
“`

## 利用例

たとえば次のような package.json がある場合

“`json
{
“dependencies”: {
“prettier”: “^3.2.5”
}
}
“`

次のように自由にサブコマンド、フラグなどを指定して実行できる

“`sh
npx prettier some_dir
“`

“`sh
npx prettier –cache other_dir
“`

# 問題の前提 – npm run

package.json の script にコマンドを書いておけば、パッケージ管理しているバージョンでコマンド実行が出来るが、

– scripts に書かずに単発のコマンド実行がしたい
– 様々なバリエーションでコマンド実行したい

という時に不便だった

# チャットメンバー募集

何か質問、悩み事、相談

元記事を表示

pnpmで管理しているWebフロントエンドをGitHub ActionsでGitHub Pagesにデプロイする

# やりたいこと
`pnpm` でパッケージ管理をしている Web フロントエンドアプリケーションを、GitHub Actions を用いることで、`main` ブランチへ `push` されたタイミングで自動的にデプロイします。

# 前提
[こちらの GitHub レポジトリ](https://github.com/Yuki-Imajuku/pnpm-ghpages-deploy) も参照してください。

– Ubuntu (22.04.4)
– Node.js (20.11.1)
– pnpm (8.15.4)

“`txt:ディレクトリ構成
pnpm-ghpages-deploy/
├── .github/workflows/ghpages-deploy.yml
├── frontend/
├── .gitignore
├── LICENSE
└── README.md
“`

# プロジェクト作成
下記のコマンドでテンプレートの React アプリケーションを作成します。ビルドツールには Vite を採用しています。
“`sh
pnpm create vite@late

元記事を表示

node js でdiscord のbot作成#2応答機能と作る

# 前回のコードの詳しい説明
“`javascript:index.js
const {Client,GatewayIntentBits, GuildTemplate} = require(“discord.js”)
const client = new Client({intents:[]})
client.on(“ready”,async (c) =>{
console.log(`${c.user.tag}でログインしました`)
})
client.login(“先ほどのトークン”)
“`

“`js
const {Client,GatewayIntentBits, GuildTemplate} = require(“discord.js”)
“`
まずはここです
`require`は読み込み先を指定するためみたいな感じです
`const`は一度定義したら二度と再定義できない変数です
“`js
const client = new Client({intents:[]})
“`
操作するためのクライアントを制作するためのものですintentsはオプションみたいな

元記事を表示

ChatGPTのチャットの返答をfetchでStream受信しようとしたらSyntaxError: Unterminated string in JSONが出たことと解決法

# エラーに遭遇した状況
openAIのchatGPTにAPIで質問を投げて、取得した回答を表示するということをしようと思いました。
chatのapiにはstreamというオプションがあります。これを使うと回答全体の構築を待たずに先頭から流してくれるようになります。
以下の記事を参考にこれを試してみようと思いました。

https://zenn.dev/himanushi/articles/99579cf407c30b

![202403011716.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3478898/a430c21e-265d-e15a-330c-406d1c41aa3f.gif)

# やったこと
まずフロントのページを用意しました。
![スクリーンショット 2024-03-01 160213.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3478898/c617569d-5745-905d-ff76-8

元記事を表示

【小ネタ】Node.js用の OpenAI パッケージ(OpenAI版・Azure版)を軽く見比べてみる

JavaScript で OpenAI の API を扱おうとした時に、公式から提供されているパッケージを利用できます。

OpenAI提供の API を利用する際は以下の 1つ目の「openai」が利用できたり、Azure版の API(Azure OpenAI Service の API)を使う場合は以下 2つ目の「@azure/openai」を利用できたりします。
※ 後述しますが、「openai」のほうを Azure OpenAI Service用に使うこともできます

●openai – npm
 https://www.npmjs.com/package/openai

●@azure/openai – npm
 https://www.npmjs.com/package/@azure/openai

これらの違いについて、少し見てみた結果をメモしておこうと思い、この記事を書きました。

とりあえず、軽く情報を見ていく感じで比較しようと思います。

## それぞれの npm のページ
### それぞれのバージョン
まずは npm のページの上部を見てみます。

#### op

元記事を表示

CloudFrontの署名付きCookieを用いてプライベートコンテンツを配信する

# はじめに

この記事は、CloudFrontの署名付きCookieを用いたプライベートコンテンツ配信についてまとめています。

# 背景

現在開発しているWebアプリケーションに、以下のような追加実装を行うことになりました。

– 認証されたユーザーのみがアクセス可能なコンテンツを作成する
– コンテンツは静的なWebページ
– 認証機能は既存のものを使用する

この仕様を踏まえて、実装方法を検討した結果、CloudFrontの署名付きCookieを採用することにしました。
Webアプリケーションの特徴的に、ユーザー数(コンテンツへのアクセス数)はそこまで多くならない想定であり、既にあるWebアプリケーションのインフラは全てAWSで構築されていますので、運用コスト・実装コスト面でも最適な選択肢と考えました。

# 前提

## CloudFrontの署名付きCookieとは

CloudFrontはAWSのCDNサービスであり、Webアプリケーションのフロント画面や、サイト内で使用される画像等の静的コンテンツをパブリックに配信するという使い方をよく耳にします。

ただ、開発物によ

元記事を表示

Exceljs でシートを保護し、特定のセルだけロックを解除して編集可能にする

# 概要

一部セルのロックを無効にした後で、シートの保護を有効化すれば良い

# コード例

– 以下の例では `B1` というようにセル位置を直接指定している
– Aliceの年齢だけが編集可能になる

“`js
const workbook = new Excel.Workbook()

// Sheet
const worksheet = workbook.addWorksheet(‘My Sheet’)

// Header
worksheet.columns = [
{ header: ‘Name’, key: ‘name’ },
{ header: ‘Age’, key: ‘age’ },
]

// Rows
worksheet.addRow({ name: ‘Alice’, age: 20 })
worksheet.addRow({ name: ‘Bob’, age: 30 })

// Lock cell
const cell = worksheet.getCell(‘B2’)
cell.protection = { locked: false }

//

元記事を表示

【Deno Deploy】md5sum api【md5】

javascriptでmd5するの結構めんどいのでAPI作った

# 使い方

“`javascript
const md5 = text => fetch(‘https://md5sum.deno.dev/’ + text).then(r=>r.text())

console.log(await md5(‘abc’))
“`

# ソースコード

“`typescript
import { Md5 } from “https://deno.land/std@0.119.0/hash/md5.ts”

const headers = { ‘Access-Control-Allow-Origin’: ‘*’ }
Deno.serve((req: Request) => new Response(new Md5().update(req.url.slice(24)).toString(), { headers }));
“`

元記事を表示

[AWS]Serverless Frameworkを使ってAPI Gateway×Lambda×DynamoDBを使用したWebAPIを構築する

## インフラ構成
WebAPIの作成に当たって今回使用するAWSの各サービスを簡単にまとめてみます。

・API Gateway
HTTPリクエストを受け付けて、他のAWSサービス(Lambda等)にルーティングする機能です。REST APIやWebSocket APIを簡単に作成できます。API Gatewayでは、リクエストのパスやクエリパラメータ、ヘッダー、ボディなどをLambda関数に渡すことができます。
https://aws.amazon.com/jp/api-gateway/

・Lambda
サーバレスコンピューティングのサービスです。コードをアップロードするだけで、イベントやトリガーに応じて自動的に実行されます。サーバの管理やスケーリングを気にする必要がありません。Lambdaは、Node.js、Python、Java、Go、Rubyなどの言語に対応しています
https://aws.amazon.com/jp/lambda/

・DynamoDB
DynamoDBは、NoSQLデータベースのサービスで、高速でスケーラブルなキーバリューストアやドキュメントストアを提

元記事を表示

Vue.js + LaravelでシンプルなSPA構築チュートリアルについて

完全honaki用悪しからず
php7.4
Laravel6.x
node.js20

## PHP7.4の導入
### homebrewのインストール

【初心者向け】Homebrewのインストール方法を解説!

### PHPの導入
https://c-limber.co.jp/blog/1691

## Composerの導入
ターミナルで以下を実行
“`
curl -sS https://getcomposer.org/installer | php
“`

ターミナルで以下を実行でComposerインストール 確認
“`
composer -v
“`
以下画像の通りならOK
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3726068/05f9eb54-b60e-7f1e-ee7e-40f35fc9ab1a.png)

## NPMの導入(mac)
### Node.jsのインストール
https://nodejs.org/en/download
上記UR

元記事を表示

Denoってなに?試しに使ってみよう

2か月前に投稿してそのまま放置してました。
~~まあUbuntuやらなんやらで遊んでただけですがね~~
さて本題に戻って、今回はDenoってなに?って人向けに簡単に説明を書きます。

# Denoとは
Node.jsの作者のライアン・ダールがJSConf EU 2018での公演「Node.jsに関する10の反省点」で発表されたJavascirpt・Typescirptのランタイムです。

# インストール方法
Windowsは
“`powershell:PowerShell
irm https://deno.land/install.ps1 | iex
“`
Mac・Linuxは
“`sh:Bash
curl -fsSL https://deno.land/install.sh | sh
“`
のコマンドを実行するとインストールされます。

# 実際に使ってみよう
:::note warn
自分が使っているDenoのバージョンはv1.41.0です。
なのでバージョンが上がるにつれ動かなくなる可能性があります。
:::
まずDenoを実行してみましょう。
“`
deno ru

元記事を表示

Node.jsでHTML、CSSを反映させる(自分用メモ)

# はじめに
ポートフォリオ用にウェブサイトを作りたいけどやり方が分からねぇってことで勉強したことをまとめました。最初の導入部分的なことしかまだわかっていませんが、もし似たようなことをしたくて困っている人の助けになればと思います。

# 1.プロジェクトを作成
(最初はNode.jsの導入をする必要があります)
ターミナルにて好きなフォルダに行く
“`
cd プロジェクトファイル
“`
package.jsonの作成
“`
npm init
“`
express(モジュール)をインストール
“`
npm install express –save
(npm install モジュール名 オプション)
“`

こんな感じにファイルを置く(by ChatGPT)
GPT先生は偉大
“`
プロジェクトフォルダ/

├── node_modules/ # npmによってインストールされたモジュール

├── public/ # 静的ファイルを格納するディレクトリ
│ ├── css/

元記事を表示

OTHERカテゴリの最新記事