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

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

Pocketの認証をワンライナーで実施する方法

# はじめに
Pocketとは,Firefoxを開発するMozillaが運営しているブックマーク保存サービスである.
IOSアプリケーションやブラウザの拡張機能でブックマークの登録ができる点.ブックマークにタグ付けする機能がある点が気に入っており常用している.そして,API機能で,機械的にブックマークの取得,追加及び変更を行える.

本記事では,API機能を用いるのに必要なアクセストークンをワンライナーで取得できるNode.js,Denoツールをご紹介する.

*事前にコンシュマーキーは発行しておく必要があります!!*

# 事前準備 : コンシューマキーを取得
下記公式ドキュメントの Step 1をブラウザで実施する.
[Pocket Authentication API Documentation](https://getpocket.com/developer/docs/authentication)

# Node.jsでアクセストークンを取得する方法

1. 下記コマンドをターミナルで実行する.
“`bash
npx pocket-auth
`

元記事を表示

Reactでフォームを作るために、Formikをイチから理解する

## はじめに
4月から新しい現場で働くようになり、いままで触っていなかったいろんな技術に触れる機会が増えました。

今回はその中のひとつであるFormikというライブラリについて、学習のために自分で調べてわかったことを記事にしました。
簡単なフォームでのFormikの使い方について3つのステップに分けてイチから理解できるようにまとめています。

なお、はじめは環境構築からになるので、単純に使い方を知りたい方は「Formikとは」からご覧ください。

## 環境構築
### Reactアプリの生成
まずはReactの環境を作ります。
“`bash
npx create-react-app practice-formik-front
“`
`practice-formik-front`の部分は各自作成したいフォルダ名に置き換えてください。

※`create-react-app`は公式サイトから記載が消えており、非推奨となっているようです。
React単体で使うのではなく、Next.js等のフレームワークと組み合わせて使うことが推奨されています。
今回はサクッと試すだけなのでこちらで

元記事を表示

npm installするとSSL/TLSネットワークエラーが発生した場合の対処方法(ESET編)

# 記事を書こうと思った背景

## ある日突然、npm installするとう、うごかない…
Node.jsパッケージ管理ツール「npm」を使って開発していると、ある日突然、npm経由でソフトウェアをインストールできなくなってしまった…💦
![エラー1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1169664/0b277a74-adc5-8595-e880-4048a137ccf5.png)

今まで普通にダウンろーできなのに…かなり焦りました。

## 試みたこと

| 試みた内容 | 手法 | 結果|
|:———–|————:|————:|
| npmのバージョン更新 | npm install -g npm |×|
| Proxyの確認 | npm -g config list |×|
| Node.jsの再インストール|[Node.jsダウンロード公式サイト](https://nod

元記事を表示

node.jsでalexaスキル その8

# 概要
node.jsでalexaスキル、やってみた。
練習問題やってみた。

# 練習問題
Alexa-hostedで、暗算、インテントを追加せよ。

# 方針
– attributesManagerを使う。

LaunchRequest
「暗算ゲームをはじめます。それでは問題です。20足す40は?」

AnswerIntent
「60だぜ」

「すごい正解です。20足す40は60です。よくわかりましたね!」

「70だぜ」

「残念20足す40の答えは60です。」

# 写真

![スクリーンショット 2024-04-20 065343.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/cfc79117-6ca1-d222-0bcd-09d0f6e46e2c.png)

# アンサー、インテントを追加
– 対話モデル>インテント>インテントを追加>カスタムインテントを作成
AnswerIntent

– 対話モデル>インテント>インテントを追加>サンプル発話
” {ans} だぜ”

元記事を表示

process.onと併せてExpressアプリケーションで発生しうるエラーを可能な限り包括的に処理する方法

## 概要
ExpressでWEBアプリを作成する際に、全体のエラーハンドリングに関する知識があいまいであったので、Node.jsのエラーハンドリングに関しても触れながら考えていきたい。
## ざっくり全部対応しているサンプルコード
以下は、Expressアプリケーションで発生しうるエラーを包括的に処理する方法の全体的なコード例です。

:::note warn
メモリリークに関しては取得できませんでした、、
:::

“`javascript
process.on(‘uncaughtException’, (err) => {
console.error(‘Uncaught Exception:’, err);
// エラーのログ記録やクリーンアップ処理を行う
process.exit(1);
});

process.on(‘unhandledRejection’, (reason, promise) => {
console.error(‘Unhandled Rejection:’, reason);
// エラーのログ記録やクリーンアップ処理を行う
p

元記事を表示

【node-cli】readline-syncで日本語が文字化けする

## 事象

“`node:interactive.js
const readlineSync = require(‘readline-sync’);
let inputString = readlineSync.question(`文字を入力…`);

console.log(inputString)
“`

Powershellで`node interactive.js`と実行すると、「inputString」はおろか「文字を入力…」の箇所まで文字化けしてしまう。

inputStringをコード上で日本語と一致比較しようにも、全く機能しなくなる。

## 解決

https://qiita.com/zawazawa5809/items/d6f84cf92a56f47229ed

CtrlPanel>地域>管理>システムロケールの変更>ベータ:ワールドワイド言語サポートでUnicode UTF-8を使用(U) にチェック

元記事を表示

node.js – クラスにメンバ変数・メンバ関数を定義する ( インスタンス変数、インスタンス関数的な )

# バージョン

– node v20

# コード例

オブジェクト ( インスタンス ) 作成時に設定した boolean が返る メンバ変数、メンバ関数をそれぞれ一つずつ設定する

“`ts
class ExampleClass {
constructor(flag) {
this.flag = flag
}

getFlag() {
return this.flag
}
}

const exampleInstance1 = new ExampleClass(true)
console.log(exampleInstance1.flag) // true
console.log(exampleInstance1.getFlag()) // true

const exampleInstance2 = new ExampleClass(false)
console.log(exampleInstance2.flag) // false
console.log(exampleInstance2.getFlag()) // false

“`

#

元記事を表示

node.jsでalexaスキル その7

# 概要
node.jsでalexaスキル、やってみた。
練習問題やってみた。

# 練習問題
Alexa-hostedで、ズンドコ、インテントを追加せよ。

# 方針
「ズンドコ」で、「ズン ドコ キヨシ」

# ズンドコ、インテントを追加
– 対話モデル>インテント>インテントを追加>カスタムインテントを作成
ZundokoIntent

– 対話モデル>インテント>インテントを追加>サンプル発話
” ズンドコ ”

– 対話モデル>インテント>インテントを追加>保存>スキルをビルド

# コードを追加

“`
const ZundokoIntentHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === ‘IntentRequest’ && handlerInput.requestEnvelope.request.intent.name === ‘ZundokoIntent’;
},
handle(handlerInput) {
let sp

元記事を表示

node.jsでalexaスキル その6

# 概要
node.jsでalexaスキル、やってみた。
練習問題やってみた。

# 練習問題
Alexa-hostedで、じゃんけん、インテントを追加せよ。

# 方針
– 「じゃんけんグー」で、「私もグー、あいこだね」

# じゃんけん、インテントを追加
– 対話モデル>インテント>インテントを追加>カスタムインテントを作成
GuuIntent

– 対話モデル>インテント>インテントを追加>サンプル発話
” じゃんけんグー ”

– 対話モデル>インテント>インテントを追加>保存>スキルをビルド

# コードを追加

“`
const GuuIntentHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === ‘IntentRequest’ && handlerInput.requestEnvelope.request.intent.name === ‘GuuIntent’;
},
handle(handlerInput) {
const a

元記事を表示

node.jsでalexaスキル その5

# 概要
node.jsでalexaスキル、やってみた。
練習問題やってみた。

# 練習問題
Alexa-hostedで、九九、インテントを追加せよ。

# 方針
– 「一の段」で、「いん いち が いち ・・・」

# 九九、インテントを追加
– 対話モデル>インテント>インテントを追加>カスタムインテントを作成
NumIntent

– 対話モデル>インテント>インテントを追加>サンプル発話
” {num} の段 ”

– 対話モデル>インテント>インテントを追加>インテントスロット
num AMAZON.Number

– 対話モデル>インテント>インテントを追加>保存>スキルをビルド

# コードを追加

“`

const NumIntentHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === ‘IntentRequest’ && handlerInput.requestEnvelope.request.intent.name === ‘N

元記事を表示

初めてのWebアプリケーションを作ってデプロイした話(React / Express)

# 目次

[1. どんな人にオススメの記事??](#1-どんな人にオススメの記事)
[2. 自己紹介](#2-自己紹介)
[3. まえがき](#3-まえがき)
[4. 作ったサイトについて](#4-作ったサイトについて)
[5. 使った言語やライブラリなど](#5-使った言語やライブラリなど)
[6. どうやって勉強したの?](#6-どうやって勉強したの)
[7. 作ったアプリの反省](#7-作ったアプリの反省)
[8. 今回得たこと](#8-今回得たこと)
[9. 今後の展望](#9-今後の展望)
[10. 終わりに](#10-終わりに)

# 1. どんな人にオススメの記事??

この記事の読者対象は次のような方にオススメです
– Webアプリケーションを作ってみたいけど**何から学べばよいか分からない**

– ある程度HTMLやCSSは触れるけど、**バックエンドの知識は全くない**

# 2. 自己紹介

– 電気通信大学の学部4年生で情報系の専門です
– プログラミング歴については大学に入ってから始めたので3年ほどになります
– C++で競技プログラミングをしていて現在

元記事を表示

Node.jsを削除し、nvmで再インストールする

Next.jsで開発をしていたらNode.jsのバージョンが古いと怒られたので、どうせならバージョン管理ツール(nvm)を導入しようと思ったので、やり方をメモ。

# 環境
– Windows11

# Node.jsのアンインストール
インストール済みのNode.jsを削除します。
参考→[How to completely remove node.js from Windows](https://stackoverflow.com/questions/20711240/how-to-completely-remove-node-js-from-windows)

1. npmパッケージのキャッシュを削除
“`posh
npm cache clean –force
“`
2. Node.jsをアンインストール
コントロールパネルからアンインストール
3. 再起動
4. 関連フォルダの削除
`C:\Program Files (x86)\Nodejs`
`C:\Program Files\Nodejs`
`C:\Users\{User}\AppData\R

元記事を表示

[uncaughtException] proxyReq.appendHeader is not a function

## 参考
https://github.com/nuxt/nuxt/issues/26662

これによると、nodeのバージョンを上げればいいらしい。

“`
// nvmインストール
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
$ export NVM_DIR=”$HOME/.nvm”
$ [ -s “$NVM_DIR/nvm.sh” ] && \. “$NVM_DIR/nvm.sh” # This loads nvm
$ [ -s “$NVM_DIR/bash_completion” ] && \. “$NVM_DIR/bash_completion” # This loads nvm bash_completion

// node v20.12.2インストール
$ nvm install –lts –latest-npm

$ nvm use v20
Now using node v20.12.2 (npm v10.5.2)

$ node -v

元記事を表示

Webブラウザ自動運転 – Playwright / Kotlin / jvm

(自分メモ)
下記と同じことをKotlin/jvmで書きたい。テスト用サーバも。

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

# 環境
– Ubuntu 22.04 on wsl2 on Windows 11
– JDK 21

# Project初期化
“`build.gradle.kts
plugins {
kotlin(“jvm”) version “1.9.23”
application
}
repositories { mavenCentral() }
dependencies {
implementation(“com.microsoft.playwright:playwright:1.43.0”) // https://mvnrepository.com/artifact/com.microsoft.playwright/playwright
implementation(“io.ktor:ktor-server-cio:2.3.10”) // https://mvnre

元記事を表示

Nodeのバージョンを変更したい

## はじめに
Nodeのバージョンを変更したい。
まずはNodeのバージョンを確認。
“`
$ node -v
“`
すると
“`
v18.15.0
“`
これが現在のバージョンです。
今回は `v12.9.1` に変更していきます。

## 1.ダウンロード可能なバージョンを確認
下記コマンドをターミナルで入力。
“`
$ nodebrew ls-remote
“`
しかし、
“`
zsh: command not found: nodebrew
“`
と怒られてしまいました🥲

### nodebrew のインストールができているか確認
“`
$ which nodebrew
“`
すると
“`
nodebrew not found
“`
と表示されました。
どうやら nodebrew がインストールされていなかったようです。

### nodebrew をインストールする
(Homebrewがインストールされている前提)
“`
$ brew install nodebrew
“`
上記コマンドを入力できたら、次にパスを設定する必要があります。

##

元記事を表示

`npm ERR! code ECONNRESET`が出たので対応した。

# 前置き
とても初歩的な内容ですが、初歩的過ぎて逆に情報が見つかりずらいやつでしたので、備忘録的にメモしておきます。
***
vueを使ってWebアプリを作っている際に、プロジェクト内にFirebaseをinstallしようとしたらエラーが出ました。
エラー文はこちら。
“`
$ npm install firebase //このコマンドに対して下記のエラー

npm ERR! code ECONNRESET
npm ERR! syscall read
npm ERR! errno ECONNRESET
npm ERR! network Invalid response body while trying to fetch https://registry.npmjs.org/@firebase%2fapp-types: read ECONNRESET
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a

元記事を表示

NodeJS: プロファイリング

# NodeJSとV8のチューニング
NodeJSの処理のほとんどはV8に依存しているため、V8の状態をプロファイリングすることでパフォーマンス上の問題などを特定できる場合があります。

## JITプロファイリング

プロファイラの実行は次のとおりです。
“`
$ NODE_ENV=puroduction node –prof app.js
“`

これにより、JITコンパイルのイベントが一連のティックとして記録されます。
“`
code-creation,LazyCompile,0,0x2d5000a337a0,396,”bp native array.js:1153:16″,0x289f644df68,~
code-creation,LazyCompile,0,0x2d5000a33940,716,”hasOwnProperty native v8natives.js:198:30″,0x289f64438d0,~
code-creation,LazyCompile,0,0x2d5000a33c20,284,”ToName native runtime.js:549:1

元記事を表示

prisma db pull→prisma migrate devに失敗する

## Prismaとは
PrismaとはNode.jsのORマッパーの1つです。詳しい解説は他記事に譲りますが、下記2つの機能も持っています。

– **Introspection**
`npx prisma db pull`
接続しているRDB上のスキーマを取得して、Prisma上のmodelファイルであるschema.prismaファイルにpullできます。

– **Prisma Migrate**
`npx prisma migrate dev`
schema.prismaファイルの変更を接続しているRDB上のスキーマに反映できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991958/89fbcb72-c1ee-a27e-8846-3f59cbd48c1c.png)

## prisma db pull→prisma migrate devに失敗
– 既存のMySQLデータをpullし、そのままprisma migrate devしようとすると失敗しました。

:

元記事を表示

TypeScriptのコードが変更されたら自動で再実行させる

皆さんはTypeScriptの学習であったり、すぐにコードの挙動を確認したい時はどうしてますか?公式のプレイグラウンドを使う方が多いのでしょうか。今回は普段使っているエディターでそれに似た環境を作ってみたのでご紹介します。コードに変更があったら自動で再実行させるため、`nodemon`と`ts-node`を使いました。

**nodemon**
ファイル変更を検知してアプリケーションを再起動するツール

**ts-node**
REPLも備えた、TypeScript実行ツール

https://www.npmjs.com/package/nodemon

https://www.npmjs.com/package/ts-node

### 動作環境
– macOS Sonoma
– Node.js 20.10.0
– TypeScript 5.4.5
– nodemon 3.1.0
– ts-node 10.9.2

### ディレクトリ構成
“`
myApp/
├── src/
│ └── index.ts
├── package-lock.json
└── pac

元記事を表示

LIFFスターターアプリを試したときのエラーについて

### はじめに
LIFF(LINE内ブラウザで動くWebアプリ)のスターターアプリを試した時にエラーが出たので、それについての備忘録です

### 実行環境
– OS: macOS 13.6.6
– Node.js: 18.6.1
– yarn: 1.22.22

### エラー内容
“`
Error: error:0308010C:digital envelope routines::unsupported …
“`
下記公式を参考に進めていくと`yarn dev`で上記のエラーが発生しました

https://developers.line.biz/ja/docs/liff/trying-liff-app/

### 対応
検索してみたところ、Node.jsがバージョン的に対応していなさそうなことがわかりました
そのため、公式に書いてある動作環境を参考に、バージョン管理ツール「n」を使ってNodeのバージョンを16.13.1へ変更してみることにしました

– Node.js: 18.6.1 → 16.13.1

変更後に`yarn dev`を試してみると無事に実行すること

元記事を表示

OTHERカテゴリの最新記事