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

Node.js関連のことを調べてみた2023年02月18日
目次

ERROR: Failed to set up Chromium r1045629! Set “PUPPETEER_SKIP_DOWNLOAD” env variable to skip download. Error: connect ECONNREFUSED 2404:6800:4004:81f::2010:443

`npm install`でエラーがでるー

“`bash
$ npm i
npm WARN deprecated puppeteer@18.2.1: < 19.2.0 is no longer supported npm ERR! code 1 npm ERR! path /home/kudu/Downloads/myproj/node_modules/puppeteer npm ERR! command failed npm ERR! command sh -c -- node install.js npm ERR! ERROR: Failed to set up Chromium r1045629! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download. npm ERR! Error: connect ECONNREFUSED 2404:6800:4004:81f::2010:443 npm ERR! at TCPConnectWrap.afterConnect [as oncomplete] (node

元記事を表示

nodejsでsymbol-sdkを触ってみる(自分用の備忘録)2023/2/17

自分用の備忘録。

# 1 環境設定

### 1-1 Visual Studio Codeを使う

・インストール
・作業用フォルダを作る
・VSCodeを起動
・作業用フォルダを開く
・VSCodeでコンソールを表示

詳細はネットの海から拾ってください。

### 1-2 SDKのインストール

“`
npm init
npm install symbol-sdk rxjs
“`

### 1-3 テスト用ファイル作成
テキトーに symbolTest01.js とかしてみる。

### 1-4 テストノードを選択

[<<ノードリスト>>](https://symbolnodes.org/nodes_testnet/)

上記リンクから好きなノードを選ぶ。
Heightという列がリンクになっているので、httpsをなっているものをどれか選ぶ。
クリックすると「 {“scoreHigh”… 」とか訳のわからない文字が表示されるが無視。
欲しいのはノードへのリンクである。
ブラウザ上部のURLをクリックして覗くと「 https://〜〜〜:3001/chain/info」とか表

元記事を表示

Remixアプリに同じネットワーク内の別の端末からアクセスする

Remixで開発したアプリケーションを起動して、同じネットワーク内の他の端末からアクセスする方法について紹介します。

通常、node.jsで起動したアプリケーションは`localhost`を表す`127.0.0.0`で起動することが多いと思います。

この値を`0.0.0.0`に変更することで外部からのアクセスが可能になるとされています。

ただ、実際に外部の端末から`0.0.0.0`でアクセスしても、Remixを起動している端末には接続できません。

外部からアクセスしてもらうために必要なIPアドレスを確認するには、アプリケーションが動く端末側のコンソールにて`Ipconfig`を実行します。

“`shell
# 無線LANのIPアドレスを確認
Ipconfig getifaddr en0
# 有線LANのIPアドレスを確認
Ipconfig getifaddr en1
“`

では、Remixにて起動した時のホストを指定するにはどうすればよいのでしょうか?

Remixでは、`process.env.HOST`を通してExpressの`app.listen`にホストの値を渡

元記事を表示

ChatGPT風のLINEチャットボットを立ち上げる

OpenAIが提供するAPIサービスを使って、ChatGPTっぽい応答をしてくれるLINEボットを立ち上げます。
といっても、OpenAPIが用意してくれているnpmモジュールを使えば簡単です。
(すでにたくさんの有志の方が試されているので、あまり真新しさはないですが。。。)

OpenAIの文章生成AIとして、ChatGPTと同じtext-davinci-003というGPT3.5系文章生成モデルを使います。また、適当な文字を入れると、それに合った画像を表示してくれるようにもしてみます。

環境一式を以下にアップしました。

poruruba/line_aibot

https://github.com/poruruba/line_aibot

# OpenAIのAPIキーを発行

以下のサイトを参考にさせていただきました。

[【2023年版】OpenAIのAPIキー発行手順!ChatGPT風の文章生成やDALL-Eの画像生成AI利用](https://auto-worker.com/blog/?p=6988)

# LINEボットを立ち上げる

以下のサイトを参考にしました。

[

元記事を表示

FetchError: request to https://registry.npmjs.org/ failed, reason: connect ECONNREFUSED 2606:4700::6810:1623:443

えとせホストに追加することで`npm install`できます

“`bash
echo 104.16.20.35 registry.npmjs.org | sudo tee -a /etc/hosts
“`

https://qiita.com/raiga0310/items/ba198156cfb5a5f8462b

元記事を表示

Prismaを活用したマイグレーション・ロールバックSQLの作成 DB構築→モデル作成をやっている人向け

## はじめに

基本的なORMの利用方法としては、以下のようにモデル→データベースの順番で作成・構築していくと思う。

1. モデルを定義
1. データベースにそのモデルに合致するテーブルを構築

ただ、モデルの定義をしてからテーブルを構築だとどうしてもかゆい所に手が届かなかったりもするので、上記の逆の手順で、データベース→モデルという順番で作成・構築する事もあると思う。

1. GUIツール(MySQL WorkbenchやNavicatなど)を利用してテーブルを設計
1. テーブル定義からモデルを作成

ただこの場合、ORMライブラリに備わっている機能を使ってモデルの変更に合わせマイグレーションをするという事ができないので、dev, staging, productionと環境があった時には、手動でSQLを流してマイグレーションを行う必要がある(モデル→テーブルの変更の順であれば、Prismaの場合、`prisma migrate deploy`で開発環境で作成したマイグレーションを環境ごとに適用するだけ(詳細は[ここ](https://www.prisma.io/docs/co

元記事を表示

react wrapper for autodesk forge viewer

https://dev.to/devbohan/react-wrapper-for-autodesk-forge-viewer-17i2

元記事を表示

Sequelize テーブル作成時の(テーブルがないよ)エラー

# Sequelizeでテーブル作成時のエラー
## 前提
docker-composeで立てたMySQLのコンテナとNode.jsによるAPIコンテナがある。
接続の確認自体は済んでいるものとする。
https://sequelize.org/docs/v6/getting-started/#testing-the-connection

APIコンテナからSequelizeを用いて
“`javascript:model.task.js

Model.sync({force: true});
“`
でテーブルを作成しようとした際にエラーが発生。

“`terminal:local
todo-api | Executing (default): CREATE TABLE IF NOT EXISTS `Tasks` (`id` INTEGER NOT NULL auto_increment , `name` VARCHAR(255) NOT NULL, `completed` TINYINT(1) NOT NULL, `createdAt` DATETIME NOT NULL,

元記事を表示

npmの真実

### npmについて
Node.jsのパッケージ管理ソフトウェアのようなもの。

### npmって何の略?
皆さんのなかには

「npm」って 「Node Package Manager」じゃないの?
と思っている方もいるかも知れません。

しかし、それは違います。

公式によると、npmの前身が「pm」というbashのユーティリティであり、更にそのpmは「pkgmakeinst」の略であるそうです。

略として見なすならば
「node pm」
もしくは
「new pm」

が正しいようです。

https://npm.im/npm
に乗ってました。

Google翻訳で日本語にした結果

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920761/673ecb5e-fdce-debe-1201-31dffcba483d.png)
英語
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/

元記事を表示

nodejsでaws-sdkを使った時にハマったこと

# はじめに

`AWS Lambda` `runtime: nodejs`を使って
`S3`にファイルをアップロードしようとした際につまづいたことをメモ。

# 環境

* aws-lambda
* runtime: nodejs 14.*

# 結論

#### `aws-sdk`にはV2V3がある

#### そして、私の環境ではV2だと動きませんでした。

クラメソにも記事がありました。

https://dev.classmethod.jp/articles/aws-sdk-for-javascript-v2-v3-diff/

# 導入方法の違い

“`bash
// V2
$ npm install aws-sdk

// V3
$ npm install @aws-sdk/client-s3
“`

# S3へオブジェクトをuploadするときの違い

## V2の場合

“`typescript
import * as AWS from ‘aws-sdk

元記事を表示

ChatGPTにLambda(Node.jsランタイム)で環境変数を参照する方法を聞いてみた

# やったこと
ググるのがめんどくさかったのでChatGPTに聞いてみました。

## 質問

“`
> LambdaのNode.jsランタイムで環境変数の参照の仕方を教えて
“`

## 回答
AWS LambdaのNode.jsランタイムでは、環境変数を参照するために `process.env` オブジェクトを使用します。このオブジェクトには、Lambda関数の実行時に設定されたすべての環境変数が含まれます。

以下は、Lambda関数内で環境変数を参照する方法の例です。

“`
exports.handler = async (event, context) => {
// 環境変数の参照
const myVar = process.env.MY_VAR;
console.log(`MY_VARの値: ${myVar}`);

// 他の処理
// …
};
“`

上記の例では、`process.env.MY_VAR` を使用して、`MY_VAR` という名前の環境変数の値を参照しています。Lambda関数が実行される

元記事を表示

ubuntu22.04にnodejs18をインストールする

普通に`sudo apt install nodejs`をするとv12というとても古いバージョンが入る

“`sh
$ sudo apt install nodejs
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
The following package was automatically installed and is no longer required:
libnuma1
Use ‘sudo apt autoremove’ to remove it.
The following additional packages will be installed:
javascript-common libc-ares2 libjs-highlight.js libnode72 nodejs-doc
Suggested packages:
npm
The following NEW packages will be insta

元記事を表示

CKEditor5の開発環境を構築する

– CKEditor5の開発環境を構築する
“`bash
$ git clone -b stable https://github.com/ckeditor/ckeditor5
$ cd ckeditor5/packages/ckeditor5-build-classic
$ npm install
$ yarn run build

# 動作確認用にHTTPサーバを立ち上げる
# ※ インストールされていない場合はインストール
# npm install http-server -g
$ cd sample
$ http-server
“`
– 日本語化する
– ckeditor5/packages/ckeditor5-build-classic/webpack.config.js
“`diff
plugins: [
new CKEditorTranslationsPlugin( {
// UI language. Language codes follow the https://en.wikipedia.org/wiki/ISO_639-1 format

元記事を表示

tiny sqlite3 + node + sqlite_web

#tiny sqlite sample

## node + sqlite3
– create workspace

“`bash
mkdir your-directory-id
cd your-directory-id
npm init -y
touch index.js
“`

– install npm package [sqlite3]

“`bash
npm install sqlite3
“`


– copy code to index.js

“`javascript
const sqlite3 = require(“sqlite3”);
const db = new sqlite3.Database(“./somedb.db”);

db.serialize(() => {
db.run(“drop table if exists sometable”);
db.run(“create table if not exists sometable(id,number)”);
db.run(“insert int

元記事を表示

期待の新星@clack/promptsで作る対話型CLI

## 概要

2023/2/13に[@clack/prompts](https://github.com/natemoo-re/clack/tree/main/packages/prompts#readme)がリリースされました。

筆者は今まで対話型CLIで有名な[prompts](https://www.npmjs.com/package/prompts)を使ってきましたが、@clack/promptsは評判も上々(1.9k Stars)なので実際に触ってみたいと思います。

## @clack/promptsとは
– 対話型CLIを作るためのAPI
– [prompts](https://www.npmjs.com/package/prompts)より機能は少ないが **80%** 小さいサイズ
– UIが少し**カッコいい**✨

## できること
– テキスト入力
– テキストのバリデーション
– 確認分岐
– 単一選択
– 複数選択
– スピナーの表示
– イント

元記事を表示

CommonJSとESModuleの設定ミスでSlackアプリを実行できなかった話

`@slack/bolt`と`chatgpt`を組み合わせて、Slackアプリを開発しようとしていた。

https://github.com/transitive-bullshit/chatgpt-api

このときの**tsconfig.json**では、`module`は`CommonJS`を示していて、`target`は`ES2017`を指していた。

“`tsconfig.json
{
“compilerOptions”: {
“module”: “CommonJS”,
“target”: “ES2017”,

},

}
“`

そして、`tsc`を使って**src/index.ts**のビルドを行い、`node`を使って生成された**build/index.js**を実行しようとした。

ビルドは通ったものの、`node`での実行に失敗した。

“`shell
> tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json

/Users/takag

元記事を表示

Node.jsではmysqlよりmysql2を使うべき理由

mysql2が一番Weeklyダウンロードが多い

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3127414/1b2a339a-a99a-6b47-34ec-8c622bda733d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3127414/2528898b-49d3-bac5-ea35-63214f68e3e5.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3127414/06c341f9-d4c0-3b60-30ea-c5d874181d50.png)

元記事を表示

[初心者向け] Cacheを使ったNode.jsのパッケージのインストールの方法と仕組みについて徹底解説

## 概要
Node.jsの必要なパッケージをインストールする際はワークフローを実行するたびに新しいrunnerを使用する関係でパッケージを1からインストールします
パッケージが少ないうちはいいものの、プロジェクトが大きくなるにつれてパッケージが多くなるとパッケージのインストール時間分ワークフローの実行時間が長くなってしまいます
そこでパッケージをインストールする際はCacheを使うとパッケージがどんなに多くてもインストール作業を数秒以内に終わらせることができます
今回はGitHubの公式で公開されている
– actions/cache
– actions/setup-node

について解説していきます

## actions/cache
公式が出しているActionで今回使用するNode.js以外の言語やDockerのCacheも扱うことができます
詳細は以下の公式ドキュメントに記載されています

https://github.com/actions/cache

以下を例に説明します
“`yml
– name: Cache dependencies

元記事を表示

MongoDBのコネクションプールがわからなかったので調査

恥ずかしながらMongoDBなどNoSQL系は業務経験がなく、最近勉強中の身です。
[Express+Typescriptプロジェクトのひな形をささっと作る](https://qiita.com/tomoyanp/items/8f039493570c7d29ae86)で作成したExpressからMongoDBに接続する形でやってます。

MongoDB公式のドライバを使用してますが、dbの接続部分は下記のような記述をよく見かけます。
“`javascript
MongoClient.connect(‘mongodb://localhost:27017/db’, (err, db) => {
db.collection(‘mycollection’).insertOne(xxxxxx);
db.close();
})
“`

シンプルに、毎回connectしてcloseするの???コネクションプールとかないの???となったので実機で試してみた記事です。
なんとなく調べていると、MongoClientにプール数を指定することは可能で、connectメソッドを呼んでも毎回接続して

元記事を表示

Cloudflare Pagesでデプロイ時のNode.jsバージョンを指定する

# はじめに
:::note info
この記事で記載するバージョンは執筆当時のものです。参考にする場合は参照を辿って差分を吸収してください。
:::

Cloudflare Pagesではデフォルトでバージョン12.18.10のNode.jsを利用してビルドコマンドの実行を行います([参照](https://developers.cloudflare.com/pages/platform/build-configuration/#language-support-and-tools))。
最近のフレームワークやビルドツールではこのバージョンで動かすことが出来ないことが多いです。例えばAstroはバージョン16.13.0以上が必要ですし、Viteでもバージョン14.18、16以上が必要となっています([参照1](https://docs.astro.build/en/install/auto/#prerequisites)、[参照2](https://ja.vitejs.dev/guide/#%E6%9C%80%E5%88%9D%E3%81%AE-vite-%E3%83%95%E3%8

元記事を表示

OTHERカテゴリの最新記事