Node.js関連のことを調べてみた2022年12月03日

Node.js関連のことを調べてみた2022年12月03日
目次

nodemon :command not found への対応(macOS)

nodemonをインストールした後、ターミナルでnodemon app.js などと実行した時に、command not foundとなってしまったので、それを解決した方法をメモしておきます。

 インストール

“`
sudo npm install -g nodemon
“`
nodemonをインストールします。または、nodemonを使うディレクトリで(cdで移動して)

“`
npm i nodemon -D
“`
もしくは、
“`
npm i nodemon –save-dev
“`
とします。(-Dと–save-devは同じ意味ですから、どちらかを使ってください。)

この後、jsonファイルにある以下の部分を見てください。
“`
“scripts”: {

},

“`
この部分に、
“`
“scripts”: {

“start”: “nodemon app.js”
},
“`
と書き加えます。app.jsの部分は適宜変えてください。

その後、ターミナルで、

“`
n

元記事を表示

Liferay 7.4 theme(テーマ)作成

### Liferay theme generator を使ってtheme(テーマ)を作成する

参考したサイト)
https://help.liferay.com/hc/ja/articles/360018162071-Liferay-Theme-Generator

# Liferay theme generator のインストール

手順(1)
 node.jsをダウンロード&インストール
 https://nodejs.org/en/
 コマンドプロンプトでインストールしたnode.jsを確認
“`
$ node -v
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2518095/e1eb7e3a-a469-0386-0d62-1e2656071a6e.png)

手順(2)
 npm環境をセットアップするために、「C:\Users\ユーザ\」配下に、「.npmrc」ファイルを作成
 (↓「.npmrc」ファイルの中身)
“`
prefix=/Users/(ユーザ※書

元記事を表示

Renovateのようにnpmパッケージを更新するためのツールをつくった話

Renovateのようにnpmパッケージを更新するためのツールを開発して使っています。

https://github.com/npm-update-package/npm-update-package

ここでは、開発に至った経緯、開発したツール、利用に関する工夫、今後の展望について記します。

## 開発に至った経緯

まず、私がRenovateのようなツールを開発するに至った経緯について説明しましょう。

### 依存ライブラリの更新に関する課題

2021年4月にヤフーに入社して以来、依存ライブラリの更新について課題を感じていました。
特にフロントエンド界隈は潮流が速く、アクティブにメンテナンスされているライブラリは、日々新たなバージョンがリリースされ続けています。
ライブラリのバージョンが古いことに起因する問題に遭遇したときや脆弱性が検知されたときなど、必要に迫られてから更新するのでは遅れをとってしまいます。
いざ更新するとなったときにはバージョンがいくつも上がっていて、影響調査やコードの修正に多くの時間を要するような事態になりかねません。
かといって、人間が手作業でせっせと

元記事を表示

Node.js(TypeScript) で Azure Service Bus を使って、Queue(キュー)を用いたメッセージの送受信をしてみた。

# はじめに
マイクロサービス間のデータベースの一貫性を保持するために、メッセージブローカというものがよく採用されます。その例として、RabbitMQ, Apache Kafka, Redis(Cache DBだけどメッセージブローカとしての機能もあります)などがあります。これらと同じような機能を備えた、Azure Service BusというサービスがAzureにはあります。今回は、Azure Service BusをNode.jsのSDKを使って、メッセージをパブリッシュして、そのパブリッシュされたメッセージをNode.jsで受信してみたいと思います。

# メッセージの種類
Azure Service Busでサービス間のメッセージの送受信の方法は大きく分けて、二種類あります。Queueを使ったやり方。TopicとSubscriptionを使用したやり方。今回はQueueを使って、メッセージの送受信を行って行きたいと思います。

## Queue
キューはFirst in First out方式(先入れ先出し法)で、各メッセージが 1 つのコンシューマーによって処理されます。

元記事を表示

KoyebでNode-REDを動かしてみた

# はじめに

無料で使えるNode-RED実行環境をいろいろ探しています。

https://qiita.com/kitazaki/items/970a10cbd1059c89aca5

新たにKoyebというサービスを見つけ、Node-REDを動かしてみました。

https://www.koyeb.com/

# 無料枠(Hobbyプラン)の仕様

|サービス|無料プラン|CPU|メモリ|Disk|時間|非アクティブまでの時間|その他|
|—|—|—|—|—|—|—|—|
|Koyeb|Hobby|1vCPU|512MB|5GB|5$|不明|1個のMICRO(1vCPU,512MB,5GB)、または、2個のNANO(1vCPU,256MB,2.4GB)|

# 手順

## 1.アカウントを作成

アカウントを作成してログインするとダッシュボード画面が表示されます。

![koyeb_1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/67f4cd8a-d

元記事を表示

UUID生成で入門するRustでWebAssembly

# はじめに

本記事は[Progaku Advent Calendar 2022](https://qiita.com/advent-calendar/2022/progaku) 2日目担当です。
みなさん、WebAssembly(以下wasm)はご存知でしょうか? MDNの[WebAssembly](https://developer.mozilla.org/ja/docs/WebAssembly)に書かれている通り、簡単に言うとコンパイル済みのバイナリファイルをブラウザ上で実行できる技術です。
ますます高まるwebアプリケーションへの要求に対して、wasmの技術は必要なものになってくると推測できます。
そういうのもありアドベントカレンダーのいい機会でもありますので、アウトプットも兼ねて触れてみました。
よろしくお願いします。

# 目的

タイトル通り。Rustで書かれたUUID生成処理をwasmでTypeScriptから動かします。

# 環境

– M1 Mac
– npm v8.5.0
– rustc v1.65.0

# 環境構築

## Rustサイド

install

元記事を表示

Discord.jsと@napi-rs/canvasでおみくじ画像を生成して投稿する

# まえがき
皆さんこんにちは、Fuseです。12月も始まり、年末年始が近づいてきましたね。
ところで、皆さんは年末年始といえば何を思い浮かべますか?私が思い浮かべるのは…
>![syougatsu2_omijikuji2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957248/d6db4653-05ea-2bf7-a9d2-8078f0a859ba.png)
>引用元:[いらすとや様](https://www.irasutoya.com/2012/04/blog-post_7236.html)

**おみくじです。**
なかなか初詣に行けないこのご時世、おみくじの結果で友達とはしゃぎたくてもはしゃげない。
せめてオンラインでこの夢をかなえるべく、Discordのbotを作りました。
# 完成品

https://github.com/Fuses-Garage/OmikujiMion
![image.png](https://qiita-image-store.s3.ap-northeast-1.

元記事を表示

Node.js + ExpressでTwitterBot作成 #2 『実装』

## 仕様の検討

作成するBotの仕様を考えます。
サッカー関係で多数RTされているツイートを自動でRTしたいので、以下のようになりました。

:::note warn
事前準備
– 事前にサッカー関係のインフルエンサーをBotのアカウントで複数フォローしておく
:::

:::note
以下を定期的に実行
– タイムライン上でRT数が一定以上のツイートをRT
– 特定のキーワード(ワールドカップなど)で検索し、一定以上のRT、かつ24時間以内に投稿されたツイートをRT
– トレンドのキーワードのうち、TLのツイートに含まれるものをサッカーネタとみなし、該当キーワードで検索。24時間以内、かつ一定以上のツイートをRT
:::

この機能を満たすように実装していきたいと思います。

## フォルダ構成

現状では以下のような構成になっています。
Node.js + ExpressでTwitterBot作成 #1 『事前準備』

# はじめに

Node.jsとExpressを使ってツイッターのbotを作ってみたので作成手順をメモしておきます。
仕様等は以下の通りです。

### Botの仕様

– サッカーネタの100RT以上のツイートを自動でリツイートする
– 同一ソースで別ジャンル(野球、プログラミングなど)のBotも作成可能にする

### 開発理由
– サッカーやプログラミングなど、興味のある分野でバズっているツイートを見逃さないため

### BotのTwitterアカウント
https://twitter.com/foot_rt_bot (ジャンル:サッカー)

### 環境
– 言語: Node.js (v18.12.1)
– フレームワーク: Express
– DB: SQLite
– ORM: Prisma
– Twitter操作用ライブラリ: node-twitter-api-v2
– IDE: VSCode

### ソース
https://github.com/tsubame/FootRTBot-NodeJs

 
# Node.jsのインストール

まずは公式サイトから

元記事を表示

nodebrewでバージョン指定してもバージョンが変わらない

バイトのときに少し触って以来久々にNode.jsを触る機会があり,Node.jsのバージョンアップから始めた.
# 状況
nodebrewを使わずにnodeを使っていたので,nodebrewをインストールして始めようとしたが,
“`zsh
nodebrew install-binary v18.12.1
“`
でインストールして
“`zsh
nodebrew use v18.12.1
“`
でバージョン選択しても
“`zsh
node -v
“`
“`zsh
v18.10.0
“`
となり,バージョンが変わらない.
“`zsh
export PATH=”$PATH:/Users/~~~ユーザー名~~~/.nodebrew/node/v18.12.1/bin”
“`
としてパスを通しても変わらない.

# 解決
“`zsh
brew list
“`
を見ると,homebrewでnodeをインストールしていたため,
“`zsh
brew uninstall node
“`
でbrewで入れたnodeをアンインストール.
“`zsh
which node
`

元記事を表示

nodejs + express + mongoDB、 Routerでapi管理

# はじめに
nodejs + express + mongoDBでrouterによるapi管理の方法がなかなか見つからず、苦戦していたので、ここにメモ

# 構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821152/baab2c38-6ec3-db26-1259-c5f7fdc9c4c7.png)

# Code
“`javascript:server.js
const express = require(‘express’);
const app = express();
const bodyParser = require(‘body-parser’);
require(‘dotenv’).config()
app.use(express.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.set(‘view engine’, ‘ejs’)

var db
const MongoClient

元記事を表示

Azureに関するStackover flowの質問を誰よりも早く回答するために、Node.js、Azure Functions、CosmosDB、StackExchange API、Slack APIでサーバレスアプリケーションを作ってみる。

![arch5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2822052/af91dca0-9c58-6f72-98e2-3ebee170c24f.png)

# はじめに
azure functionを使って、サーバレスらしい小さなアプリケーションを作って見たかったので作ってみました。コンセプト的には、「azureに関するstack overflowの質問を一番に回答してやろう」的なやつです。そのための機能として、以下を実装していきます。

– 毎日stackoverflowのazureに関する質問を取得する
– 取得した質問をデータベースに保存する
– 質問をslackに送信する
– REST APIからデータベースに保存した質問を取得できる

ようするに、毎日最新の stack overflow の azure に関する質問を slack のチャンネルに送信してくれるアプリケーションです。実際に回答をするかはあなた次第です。あと一応データベースに保存してあるので、REST API も作ってお

元記事を表示

OpenSSLの脆弱性をSnykで駆逐してみた

# はじめに

こちらの記事はアドベントカレンダー「[Snykを使って開発者セキュリティにまつわる記事を投稿しよう! by Snyk Advent Calendar 2022](https://qiita.com/advent-calendar/2022/snyk)」の初日の記事として投稿しています。

私[@tajima_taso](https://twitter.com/tajima_taso)からは、Snykを使って先日発生したOpenSSLの脆弱性([CVE-2022-3786およびCVE-2022-3602](https://www.openssl.org/blog/blog/2022/11/01/email-address-overflows/))を検出し、対処する具体的な方法についてご紹介いたします。

今回は気軽に試せるよう[Github上にリポジトリ](https://github.com/yuya-tajima/dangerous-train)を用意しましたので、興味を持たれた方がいましたら一緒に手を動かしながらお試しいただければと思っております。

具体的には「*

元記事を表示

クロスプラットフォーム対応! MIDI経由のハードウエア制御システムをサっと作る

### Webからハードを操作する環境を素早くつくりたい!

Webエンジニアです!

普段仕事でプロトタイピングすることも多く、雑にWebからハードを操作するシステムを試作することも多いです。
今回紹介するのは、つい先日のお話です。

下記のような要件のシステム(プロトタイプ)を作りました。

– 操作用のPCやスマホから別の場所にあるPCとそのPCに接続されたハードを制御する
– ハードが接続されたPCはWindows PCの上で動作させる想定だがOSはLinuxにするかもしれない。さらに開発はMacで行いたい
– PCとハードの接続にはUSBケーブルを用いる
– ハードは制御コマンドに基づいて動く。コマンド体系はいくつかのコマンド+ON/OFF程度で単純
– 数台作れれば良い。さくっと明日までにプロトタイプを1台つくれ。的なスピード感(実際は2-3日猶予がある)

![sc1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31758/3cd4c188-081c-ac3a-097c-6c8b11c7

元記事を表示

nodejs + express + mongoDB のCRUDまとめ

# はじめに
mongoDBはNon-SQLとしてMySQLのような行列のデータではなく、JSON構造のデータである。そもそもクラウドデータベースなので、環境を変えながら開発をしたい場合、個人が気軽にデータベースを持ちたい場合、利点を持つ。ここではnodejs + mongodbを用いた基本的はCRUD (Create, Read, Update, Delete)をPostmanを用いて簡単にまとめた。

## PostManの参考

https://qiita.com/notch0314/items/97c7d1bb565fdae4a712

# 環境
mongodb 4.12.1
window 10
express: 4.18.2

## MongoDB
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821152/4c2c48e5-11c4-df98-6003-5d45b6197feb.png)
Database -> Cluster0 -> Connect

![image.

元記事を表示

Expressで多次元配列でフォームの入力値を受け取る

Expressでフォームの入力値を配列で受け取るにはexpress.urlencodedの指定が必要。

“`javascript
app.use(express.urlencoded({extended: true}));
“`

[Expressでbody-parserがいらない理由: “bodyparser is deprecated”](https://qiita.com/hirochan/items/e63d74cb70f0b97889fc)

どういった形式で指定することが出来るかのサンプルを以下に記載する。

“`html



元記事を表示

LINE Beaconの擬似無限プッシュでLINE公式アカウント無料枠の制限に立ち向かう話 #linedc #iotlt

こんにちは! 12月ですね。IoTLTアドベントカレンダーの1日目の記事になります。

LINEビーコンを使うことで本来は有料なプッシュ機能の擬似無限プッシュがやれることをご存知でしょうか?今回はその辺の話を書いていきます。

> ![スクリーンショット 2022-12-01 14.15.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/35387/0b996383-8639-4292-fa7c-ac8d9b34878f.png “スクリーンショット 2022-12-01 14.15.47.png”)

作ったものとしては`LINEビーコンで無限プッシュなメンヘラ女子BOT`で、前回のIoTLTで発表した内容を記事化していきます。

> [![スクリーンショット 2022-11-30 23.55.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/35387/a3f92ab9-e43a-673f-8a45-b9e9b

元記事を表示

Dockerでnpm installが遅い問題を解決する

昔よく`docker npm install 遅い`などのワードで検索していたのですが、そもそもComposeファイルの書き方をあまりよく理解しておらず、自分のフォルダ構成に落とし込むことができなかった経験があります。
あれから学習し少しは分かるようになったのでその成果を記述します。
ともあれ、もし上記ワードで検索してこの記事に来たならば、できればComposeファイルの記述方法を学んでほしいです。
おすすめ→https://zenn.dev/suzuki_hoge/books/2022-03-docker-practice-8ae36c33424b59
# docker-compose.yml
“`docker-compose.yml
version: ‘3.9’

services:
front:
container_name: ContainerName
working_dir: /front
tty: true
build:
dockerfile: ./Dockerfile
context: .
volume

元記事を表示

Next.jsとはなんぞや

最近Next.jsというものを使い始めたのですが、Nuxt.jsやReactと何が違うのでしょうか?
細かい違いがわからなかったので、ここで整理しておきます。
## Next.js/Reactの相違点
Next.jsはReactをベースにしていますが、以下のようにReactと異なる点があります。
| | Next.js | React |
| —| ——- | —– |
|サーバーサイド|〇|×|
|用途|アプリケーションフレームワーク|UIライブラリ|
|部分導入|×|〇|
## Next.js/Nuxt.jsの相違点
Nuxt.jsというフレームワークがあります。
Next.jsもNuxt.jsもSSRを実現するJavaScriptフレームワークです。
サーバーサイドレンダリングが必要な場合によく導入されます。
ユースケースによって、Reactで作られたアプリケーションのSSRにはNext.jsを、Vue.jsのアプリケーションのSSRにはNuxt.jsを使うという違いがあります。
## Node.jsとの関係
Next.jsは単体では動作しません。
あらか

元記事を表示

WordPressサイトにウォレットを接続するプログラムの作り方

今回個人サイトにMetaMaskを接続できるプログラムを作成しました。

必要な物

  • npmコマンドが利用できるパソコン(Node.js)
  • MetaMask
  • WordPressが動く環境

事前の準備はこちらを確認してください。

ウォレットを接続するソースコード

MetaMaskの公式サイトによると、下記のソースコードを呼び出すと接続できるようになると記載しています。

“`javascript:web3.js
ethereum.request({ method: ‘eth_requestAccounts’ });
“`

完成ソースコードは

  • OTHERカテゴリの最新記事