Node.js関連のことを調べてみた2023年08月17日

Node.js関連のことを調べてみた2023年08月17日

Node.js上のCLIツールで文字列をクリップボードにコピーさせる

# 概要

個人的な用途で、Node.jsのCLIツールを作っていました。求める機能としては、「標準入力した複数行の文字列を、(若干加工した後)1行ずつ逐次クリップボードにコピーさせる」というものでした。クリップボードへのアクセス以外については比較的苦しむことなく実装できたのですが、クリップボードへのアクセスを行う方法について簡単に調べたところ、殆どの記事で「このnpmパッケージを使え」みたいなことが書かれており……「その部分除けば50行もないコードの為にpackage.json書けとでも……?!」という気分になった結果、どうにかNode.jsに付属している機能だけで何とかすることができたので、それについて書いていきたいと思います。

# コード

完成形としては以下のようなものになりました。

“`javascript
const {exec} = require(‘node:child_process’);
function clip(str) {
exec(`echo ${str} | clip`);// ※Windows以外の環境ではここをいじる必要がある
}

cons

元記事を表示

Mapbox、Node.js、GridDBによる世界の人口データの可視化

## 私たちは何を作るのか?

この記事では、世界の人口データを表示するウェブベースのマップを作成する方法を紹介します。データは[worldometers][1] から抽出し、React、Mapbox GL JS、Node.js、GridDBを使用してウェブベースの地図アプリケーション全体を構築しています。世界地図には、人口データの多い上位10カ国が表示されます。

## プロジェクトを実行する

プロジェクトを起動するには、プロジェクトの[リポジトリ][2]にアクセスします。リポジトリをクローンし、Node.jsのバージョンが18であることを確認し、必要な依存関係をすべてインストールし、プロジェクトを開始します。

“`sh
git clone git@github.com:junwatu/griddb-codes.git

cd griddb-codes

core enable

corepack prepare pnpm@7.30.0 –activate

pnpm install

cd packages/data-server/

pnpm install

cd ..

元記事を表示

ChatGPT、Node.js、GridDBを活用したニュースタグの自動作成方法

デジタル化が進む現代において、私たちはソーシャルメディアからオンラインニュースサイトに至るまで、数多くのプラットフォームで膨大な量のニュース記事に常にさらされています。このような大量の情報の流入は、しばしば「ニュースの洪水」と呼ばれ、消費者と報道機関の双方にいくつかの課題をもたらしています。コンテンツの整理、情報の過多、時間のかかる手作業のタグ付けプロセス、非効率なコンテンツの発見と推奨など、これらの課題に対処することは、ユーザー体験とニュース消費全体の質を向上させるために不可欠です。

この問題に対する一つの解決策が、ニュースタギングを利用することです。これは、デジタルニュース領域で利用可能な豊富な情報を処理、整理、提示する上で重要な役割を担っています。無数のニュース記事に正確なトピックを手動でタグ付けすることは、圧倒的な時間と労力を要する作業です。

*もし、ニュース記事をリアルタイムで効率的に処理できる自動コンテンツタギングシステムがあったらどうでしょうか。*

このブログでは、**自動化されたニュースタギングシステム**を作成します。OpenAI、Node.js、GridDBの

元記事を表示

ChatGPT、Stable Diffusion、GridDB、Node.jsを使ってウェブサイトコンテンツを自動生成する

今日のデジタル時代において、高品質で魅力的、かつ関連性の高いコンテンツを作成することは、企業や組織がターゲットオーディエンスを惹きつけ、維持するために極めて重要になっています。コンテンツ作成には、記事やブログ記事の執筆からソーシャルメディアの更新やマーケティング資料の作成まで、幅広い活動が含まれます。コンテンツの需要が増え続ける中、手作業によるコンテンツ作成はますます時間と労力がかかるようになり、しばしばアウトプットの遅れや品質のばらつきにつながります。

自動コンテンツ作成は、人工知能(AI)や自然言語処理(NLP)などの先進技術を活用し、構造化され、一貫性があり、文脈に関連したコンテンツを作成することで、このような課題に対するソリューションを提供します。コンテンツ作成プロセスを自動化することで、企業は以下のことが可能になります。

**・効率の向上**: コンテンツ作成の自動化により、コンテンツ作成に必要な時間と労力を大幅に削減できるため、チームはコンテンツの計画や最適化など、より戦略的なタスクに集中することができます。

**・一貫性の向上**: 自動コンテンツ生成は、アルゴリズ

元記事を表示

Hardhatでプロジェクトを作成するまで(2023/08/15)

こちらの記事は[HardhatのTutorial](https://hardhat.org/tutorial/)の日本語解説となります。

Web3の勉強をしたいと思ってチュートリアルの日本語記事を探していたのですが、Hardhatのチュートリアル記事ってあんまりないのですね、、、qiitaで調べてみても2,3件しかありませんでした。
先人たちの記事はこちら?
[Hardhatのチュートリアルをやってみた](https://qiita.com/koffee0522/items/daff22907b6e6ce89e13)
[【Solidity】HardhatでDappを作ってみる ~ チュートリアル編(前半)~](https://qiita.com/yuskey/items/0722271dc88b637330f2)
先人たちの解説があるのですが、改めてチュートリアルの日本語Verを作成しました。

# Hardhatとは
+ ローカルでSolidityを実行可能。
+ 開発専用のEthereumネットワーク、Hardhat Networkの提供。
+ デバッグに特化し、エラー時の詳細な

元記事を表示

npm v7以降のpeerDependencies採用方針

## 先に結論だけ

このような依存関係のパッケージがあるとします。

“`
パッケージA
┗ パッケージB
┗ パッケージC
“`

npm v7以降のpackage.jsonでは`peerDependencies`を以下の方針で採用しましょう。

– パッケージBとCで、違うバージョンのパッケージAを使う場合`dependencies`を使う
– パッケージBとCで、同じバージョンのパッケージAが必要な場合は`peerDependencies`を使う

パッケージBで`peerDependencies`を使う場合は

– パッケージBでは、パッケージAを`dependencies`や`devDependencies`には入れない
– パッケージCでも、パッケージAを`dependencies`や`devDependencies`には入れない

## はじめに

この記事は、npm v7以降のpackage.jsonでpeerDependenciesがどのように振る舞うかの実験と、その結果から依存パッケージをどのフィールドにインストールすべきかの方針を記録

元記事を表示

Node.js Expressのルート(routes)を一覧表示するライブラリを作った話

## はじめに

以前、(所属する会社の)ブログで書いた[【Node.js】Expressでroutesの一覧を成形してログ出力してみた](https://note.com/shift_tech/n/ne1c160a36aa9)でやった、Expressに登録済みのルーティング(routes)を一覧でログに出力する機能をライブラリにしてみた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1372684/bdbd8215-c83d-ade6-7535-79769ba388de.png)

今回は、そのライブラリ(パッケージ)を開発した際の

– TypeScriptをあきらめてJavaScriptで開発したこと
– ES Moduleで開発をしつつも、CommonJSでもパッケージを公開したこと

などを記事にしたいと思う。

※公開したパッケージは以下。

https://www.npmjs.com/package/console-express-routes?activeTab=rea

元記事を表示

VueのForm入力はこれでよかったのか!!!

## 背景
以前Vue.jsを持ちいてフォームの送信を行なおうとしたところ、デフォルトの送信を取り消さないと勝手に画面がリフレッシュされてしまうという問題があった。
これの解決のために、
“`js

“`

__@submit.prevent__ これを利用することで、強制更新を止めることができたが、__ref__ を利用する場合は、別にFormで加工必要がないことに気が付いた。

## 改変後
“`js