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

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

chatGPT で kintone スペース管理コマンド作成

chatGPT で kintone スペース管理コマンド作成してみました。

# 概要

kintone スペース管理コマンドを chatGPT で作成して、github に公開してみました。
簡単なコードからオプション機能を追加していくと、コードが長くなり生成を続けるか聞かれるようになるのが、面倒くさい。

公開されているスペース作成の REST API は、スペーステンプレート必須となっていますが、スペーステンプレートなしでも作成できたので、それも対応しています。
ただゲストスペースについては、スペーステンプレート無しでは、スペース作成できませんでした。

あとスペース一覧、スペーステンプレート一覧の REST API が無いので、コマンドだけでスペース管理するのは、まだ無理です。

– chatGPT での作成手順
– node のコードを作成
– README のドキュメントも作成
– マークダウン形式で作成依頼すると途中まではマークダウン形式だが、コード部分の最後で、マークダウン形式から外れる
– テキストファイルで要求すると、

元記事を表示

HexoとButterflyテーマを使用してNetlifyにデプロイする方法

## はじめに

この記事では、HexoのButterflyテーマを使用して静的サイトを作成し、Netlifyにデプロイする手順を説明します。

### 使用環境
OS:Windows11
VS Code
node: v18.17.0
hexo: 7.3.0
hexo theme: [butterfly](https://github.com/jerryc127/hexo-theme-butterfly)

## 静的サイトジェネレーター(SSG)とは
ウェブサイトのページを事前に生成し、静的なHTMLファイルとして提供するツールです。これにより、サーバー側の処理が不要になり、表示速度が速く、セキュリティも向上します。Hexo以外にも代表的なSSGには、Next.js、Gatsby、Hugoなどがあります。

## 1. 環境の準備

まず、Node.jsと[Git](https://gitforwindows.org/)がインストールされていることを確認してください。これらはHexoの動作に必要です。

## 2. Hexoのインストールと初期設定

Hexo CLIをインストー

元記事を表示

SNS作った「ニャ」 (nyapp.buzz)

![](https://yuis.xsrv.jp/images/ss/ShareX-240722T032428-GvJ2qTbm~chrome-Nyapp_-_Google_Chrome.png)

↑ 外観

[https://nyapp.buzz/](https://nyapp.buzz/?qt)





のシェアです。あしからず。

ユーザー作成すると、
フォロー・投稿・コメント・プロフィール編集・チャットなどができます。

技術:

nginx, mongo, next.js, react.js, etc.

免責:

ただいま完全無保証でのご提供になります。
アプリ内でも言及していますが、クローズドβテスト段階のため、現段階ではお友達等への拡散は控えていただけると助かります。

課題:

また、作り始めたはいいものの、どのようなSNSとするか考えかねている状況です。

全ての投稿に強制的に「にゃ。」が付いたら便利だと思ったのでこれ実装していこうかと考えているところなのですが、皆さまどう思われますか?にゃ。

mastodonやblueskyと迷ってたのですが、自由

元記事を表示

[備忘録]Proxy環境下でNode.jsのFetchErrorを回避する方法

# はじめに

企業で開発する場合にはネットワークにつなぐためにはProxyを指定することがあります。
この環境下でNext.jsを実行すると外 部APIやダウンロードなどのfetchを行うと`FetchError`が出てしまい接続できません。
その対策に対しての記事となります。

どちらかという自身の備忘録です。

# 対策前

以下のコマンドで、Next.jsのプロジェクトを作成します。

“`sh
npx create-next-app@latest
“`

プロジェクトフォルダ配下で以下のコマンドを実行しNext.jsを起動させます。

“`sh
npm run dev
“`

[http://localhost:3000](http://localhost:3000)にアクセスすると以下のようなログが出ます。

“`sh
> my-app@0.1.0 dev
> next dev

▲ Next.js 14.2.5
– Local: http://localhost:3000

✓ Starting…
✓ Ready in 1495

元記事を表示

【Docker Storage】バインドマウントでホストマシンのファイルを Node.js コンテナで実行する

# はじめに
この記事では、Docker のバインドマウント機能を利用して、ホストマシンのファイルを Node.js コンテナで実行する手順について記載します。

https://docs.docker.com/storage/bind-mounts/

以下の記事でも Node.js / TypeScript のコンテナを作成しましたが、このケースでは、ホストマシンのファイルに変更があった場合、都度イメージをビルドする必要があります。

https://qiita.com/Yasushi-Mo/items/789871a7f3eb86b01a62

バインドマウントを利用して、ホストマシンのファイルをコンテナで実行できるようにすることで、都度イメージをビルドする必要がなくなります。

# 開発環境
開発環境は以下の通りです。

– Windows 11
– Docker Engine 26.1.1
– Node.js 20.15.1
– npm 10.8.2
– @types/node 20.14.10
– nodemon 3.1.4
– ts-node 10.9.2
– Type

元記事を表示

[Nuxt3]Node.jsとNitroの違いについて

# Node.jsとNitroの違いとサーバーレスプラットフォームについて

## はじめに
Node.jsとNitroは、どちらもサーバーサイドの技術として使用されるものですが、Nuxtの学習を進めるにあたって両者の違いがわからなくなってきたため、ここで記事として残したいと思います。
本記事では、Node.jsとNitroの違いを比較しながら、デブロイ時によく利用されるサーバーレスプラットフォームについても軽く触れたいと思います。

## Node.jsとNitroの比較

### Node.jsとは
Node.jsは、JavaScriptランタイム環境であり、サーバーサイドアプリケーションの開発に使用されます。
非同期I/O操作をサポートし、高いパフォーマンスとスケーラビリティを提供してくれることが特徴です。

### Nitroとは
NitroはNuxt 3の一部として開発された軽量サーバーエンジンであり、特にNuxt 3アプリケーションのビルドとデプロイを最適化してくれます。
サーバーレスプラットフォームやエッジ環境で動作します。
(余談ですが、ずっと「ニトロ」って呼んでいまし

元記事を表示

kintone chatGPT によるスペース&アプリ作成

kintone アプリをchatGPT に聞いた node で作成してみました。

# 概要

kintone 顧客管理アプリを作成するコードを chatGPT に聞いて実行してみた。
いろいろエラーを解消しながら、コードを作成
スペース情報取得は、よくわからないエラーで試行錯誤した。

※API ラボで、開発中のAPI を利用しています。
・「スペースの情報を取得できるJavaScript API」を有効にする

アプリ項目を要件として、リクエストすると、アプリフォームまで定義してくれる。
これをたたき台にして、項目追加等を行うことも可能。
テストデータも生成してくれるので、簡単なテストも可能です。

– スペース(APP-TEST)作成
– スペース管理者設定
– スペース情報取得には、スペース管理者権限が必要
– スペース情報取得
– アプリを作成する defaultThread を取得
– ※ header 部に ‘Content-Type’: ‘application/json’を入れて、リクエストボディで指定するとエラー”不正なリクエ

元記事を表示

Dify APIにNode.jsから接続する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/6e5b675d-2114-42f6-0c25-5b0001152332.png)
作成日:2024年7月21日(日)
# Dify APIにNode.jsから接続する

## 1.はじめに

Difyを使用するようになってから、チャットフロー機能やワークフロー機能がとても気に入っていて、これをLLM(Large Language Model)のように使いたいという欲求が高まってきました。
理由は、Difyの本番環境向けのチャットボットに2点ほど気に入らない点があるからです。
本番環境向けのチャットボットにはチャット履歴やマルチモーダルファイルの添付などの機能があり、十分ではありますが、生成されるユニークキーが含まれるFQDNアドレスは分かりやすいアドレスとは言えません。
また、生成AIを利用するユーザーとしては、プロンプトテンプレートを保存できる機能が非常に欲しいところです。
このページでは私が考える目論見を実現するための一

元記事を表示

コンソールに地図を表示するnode.jsアプリ

下記のように緯度経度や、地名からコンソールに地図を表示する(node.js)アプリです

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276579/11d9a75e-09a3-b167-179f-d7b0d4aed982.png)
![image-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276579/8c25cb9d-9d4b-e59d-fece-037c0296d878.png)

## はじめに

[ターミナル内で画像を表示する](https://qiita.com/murasuke/items/5957cd228d5209eea5f9)や、[緯度、経度をもとに国土地理院タイルを表示する方法](https://qiita.com/murasuke/items/ad81b7b726a3463fa3fe)を応用して、ターミナル内に地図を表示してみたいと思います

## 環境
(Window

元記事を表示

kintone プラグイン一括登録・更新用リスト作成

[kintone プラグイン一括登録・更新](https://qiita.com/rex0220/items/a0570f40c0be78b3907a)用に、プラグイン開発ディレクトリから一覧を作成します。

# 概要

下記のようなプラグイン開発ディレクトリからプラグインリストを作成します。
複数プラグインだとリストを手作業で作成するのも大変です。
コードは、ChatGPT にほとんど作ってもらい、最後の出力の並びを訂正したくらいです。

– プラグイン開発ディレクトリ

![2024-07-20_16h32_24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/fe76ee68-d76a-58f7-e30c-07cccaa2c660.png)

– 作成するプラグインリスト
– プラグインファイルパス、プラグインID、プラグイン名

“`.txt
node scripts/plugin-uploader.js -f aggregate/dist/aggregate-plugin

元記事を表示

kintone プラグイン一括登録・更新

kintone プラグインを一括登録・更新する処理です。
最新版のプラグインをまとめて登録・更新するのに便利です。

# 概要

[kintone プラグインアップローダー互換対応](https://qiita.com/rex0220/items/aab91d4ee35baf113082)を順番に呼び出すだけですが、ドメインやユーザーなどを指定して汎用的に使えるようにします。
開発環境・運用環境・米国・中国など複数環境のプラグイン登録・更新に便利です。

plugin-uploader.js を起動するリストがあれば、それを単純にシェルに流し込めば実行できますが、エラー処理や対象ドメインを指定できるようにします。

– ドメイン・ユーザー・パスワード指定
– 待機時間指定
– プラグイン登録・更新は、サーバー側でそれなりの処理時間がかかると思われるので、規定値で3秒待ちにした
– エラー時に続行するか応答確認

# プラグイン一括登録・更新の実行例

指定ファイルには、プラグインファイル・プラグインIDを指定します。
プラグイン名は、コメントで入れています。
プラグインの開発環

元記事を表示

multerをざっくり理解する

# multerとは
– Node.jsのミドルウェア
– ファイルのアップロードを簡単に処理する

# そもそもファイルのアップロードとは
– HTTP送信しただけではアップロードとは実質的に言えない
– その後のサーバーサイド上で行う処理も含めてアップロードと認識する
– この部分をmulterで行う

# 使い方
### インストール
“`
npm install multer
“`
### Node.js
“`js
const multer = require(“multer”);

// multerの設定
const multerMemoryStorage = multer.memoryStorage(); // ファイルをメモリに保存
const multerUpload = multer({ storage: multerMemoryStorage }); // multerインスタンスの作成

router.post(
“/upload”,
multerUpload.single(“markdown”),
async (req,

元記事を表示

Node.js v22.5.0でCIのnpmが動作しないバグが発生中

## TL;DR

– Node.js v22.5.0にはバグがある
– CIで使われるnpmのclean-installコマンドが失敗することがある
– v22.5.1がリリースされるまではv22.4系へのダウングレードを推奨

## 経緯

2024年7月18日、私のNode.jsを使ったプロジェクトがCloudflareでのビルドに失敗していることに気づきました。

“`
Installing project dependencies: npm clean-install –progress=false
npm error Exit handler never called!
npm error This is an error with npm itself. Please report this error at:
npm error
npm error A complete log of this run can be found in: /opt/buildhome/.npm/_logs/20

元記事を表示

Node.jsでS3の署名付きURL取得

node.jsで署名付きURL取得するコードサンプルを書きました。
aws-sdk v3を使用しています。

“`javascript
import { S3Client, PutObjectCommand, GetObjectCommand } from “@aws-sdk/client-s3”;
import { getSignedUrl } from ‘@aws-sdk/s3-request-presigner’;

const s3 = new S3Client({ region: process.env.AWS_REGION });
// 環境変数にあらかじめBUCKET_NAMEを登録しておく
const BUCKET_NAME = process.env.BUCKET_NAME;
const KEY = “hoge”

export const handler = async (event) => {
const { filename, contentType } = JSON.parse(event.body);
console.log(“body”,

元記事を表示

DockerやNVMを使わずに異なるバージョンのNode.jsをインストールして切り替える方法

多くの開発者は、古いオペレーティングシステムでNode.jsや関連ツールの新しいバージョンをインストールしようとすると、互換性の問題に直面します。

一般的な解決策として、コマンドラインツールとしてDockerイメージを使用する方法があります。Dockerを使用してNodeのバージョンを管理することで、依存関係の完全性が保証され、依存関係の不一致エラーを回避できます。これはNVMを使用するよりも少し便利ですが、ディスクスペースの使用とイメージをプルするための時間がかかるというトレードオフがあります。

そこで、異なるバージョンのNode.jsコマンドをより簡単かつ迅速に実行できるツールが登場しました。それが**[ServBay](https://www.servbay.com)**です。

ServBayは、開発環境の管理を簡素化するために設計されたオールインワンの開発環境管理ツールです。

ServBayは驚くべきツールで、インストールパッケージはわずか13MBですが、複数のバージョンのNode.jsをサポートしています。クリック一つでダウンロードでき、追加の手順やイメージをプルする

元記事を表示

kintone プラグインアップローダー互換対応

[kintone プラグインアップロード処理](https://qiita.com/rex0220/items/ea321d0573b83607ab2c) の動作が問題ないので、プラグインアップローダー互換対応してみました。
アップロードまでの待ち時間短縮とアップロード失敗が無くなり、作業中のストレスがかなり減ります。

# 概要

プラグインアップローダーの代わりに、REST API でプラグインアップロードするように変更。

– watch オプション追加
– プラグインパッケージ処理が実行するたびに、プラグインアップロードする
プラグインファイル変更の監視処理追加
– waittime オプション追加
– 1回目のプラグインパッケージ処理が完了するまでの待ち時間

## 問題点

– プラグインのインストールと変更をプラグインID の有無で判断しているため、複数の kintone 環境に対応できない

REST API で、プラグインID無しで更新ができると解決するのだが…
暫定対応としては、「とりあえず更新処理してエラーになったらインストール処理する」にした

元記事を表示

NodeでURLからCSVデータ取得してみた

いちいち更新されるたびにファイルをダウンロードしてきて…って、すごくめんどくさいので、CSVぐらいURLから取得できないかなあ…

ということで、nodeでCSVをURLから取得できるプログラムを作ってみた。

“`js:urlcsv.js
export class URLCSV {
async * #makeTextFileLineIterator(fileURL, charCode) {
const utf8Decoder = new TextDecoder(charCode);
const response = await fetch(fileURL);
const reader = response.body.getReader();
let { value: chunk, done: readerDone } = await reader.read();
chunk = chunk ? utf8Decoder.decode(chunk) : “”;

const newline = /\r?\n/gm;
l

元記事を表示

kintone プラグインアップロード処理用プラグインIDセット

[kintone プラグインアップロード処理](https://qiita.com/rex0220/items/ea321d0573b83607ab2c)用に、既存のプラグインIDをファイルにセット(メモ)

# 概要

作業手順をメモ

・[kintone プラグイン一覧取得](https://qiita.com/rex0220/items/6ab8475e87c5de08e21d)で、プラグインID とプラグイン名を取得
・各プラグインの 「manifest.json」ファイルからファイルパスとプラグイン名を取得
・プラグイン名でマッチングして、プラグインIDとファイルパスを取得して、ファイル作成コマンド作成

# kintone プラグイン一覧取得

kintone 開発環境から、[kintone プラグイン一覧取得](https://qiita.com/rex0220/items/6ab8475e87c5de08e21d)で、一覧作成

“`listPluginID.txt
*** Plugin List ***
# pluginId, name, version, plug

元記事を表示

kintone プラグイン一覧取得

kintone REST API に、インストール済みプラグイン一覧取得が追加されたので、試してみました。

# 概要

既存のプラグインID を簡単に取得できます。

>[インストール済みのプラグインの一覧を取得する](https://cybozu.dev/ja/kintone/docs/rest-api/plugins/get-plugins/)

開発は、[kintone プラグインアップロード処理](https://qiita.com/rex0220/items/ea321d0573b83607ab2c)をもとにchatGPT で、API を変えてループ処理にしました。

# プラグイン一覧表示

プラグインのインストール順に、表示されます。

“`実行ログ.log
> node .\scripts\listPlugin-api.js
*** Plugin List ***
# pluginId, name, version, pluginStore
1 gbjnadbngbniopdeibcjihdkhkcinljf : 項目絞り込み, 24, false
2 jaclnk

元記事を表示

kintone プラグインアップロード処理

kintone REST API に、プラグインアップロードが追加されたので、試してみました。

# 概要

kintone にプラグイン関連の REST API が追加されました。
plugin-uploader は、ブラウザー経由でプラグインをアップロードするため、よく失敗する。
またそれなりに処理時間もかかるため、REST API を試してみました。
REST API 版アップロードは、処理時間が早く、アップロードの失敗も無くよさそうです。

> cybozu developer network>kintone>kintone APIドキュメント>kintone REST API>プラグイン
– [プラグインを読み込む](https://cybozu.dev/ja/kintone/docs/rest-api/plugins/add-plugin/)
– [プラグインを更新する](https://cybozu.dev/ja/kintone/docs/rest-api/plugins/update-plugin/)

開発は ChatGpt に、コードを生成してもらい、動作しない部

元記事を表示

OTHERカテゴリの最新記事