Node.js関連のことを調べてみた2021年09月29日

Node.js関連のことを調べてみた2021年09月29日
目次

[Launch] NocoDB : オープンソースAirtable-あらゆるデータベースを共同スプレッドシートに変換します

今日はQiitaコミュニティにNocoDBを紹介できることに興奮しています。

# [NocoDBは、無料でオープンソースのAirtableの代替手段です。](https://github.com/nocodb/nocodb)
NocoDBは、任意のリレーショナルデータベースに接続し、それらをスマートスプレッドシートインターフェイスに変換することで機能します。これにより、チームと協力してノーコードアプリケーションを構築できます。 NocoDBは現在、MySQL、PostgreSQL、Microsoft SQL Server、SQLite、Amazon Aurora、MariaDBデータベースで動作します。

また、NocoDBのアプリストアでは、Slack、Microsoft Teams、Discord、Twilio、Whatsapp、Email、およびサードパーティのAPIを組み合わせて、ビュー上でビジネスワークフローを構築できます。さらに、NocoDBはAPIへのプログラムによるアクセスを提供するため、Zapier / Integromatおよびカスタムアプリケーションとの統合も構

元記事を表示

TypeORMでロールバックの実装

# 初めに
TypeORMを使用してDB操作を実装しているときに、「あっ、エラーが発生した時のロールバック処理も実装しないと」と思い、実装したプログラムを紹介します。

# 環境
* Windows10
* typeorm 0.2.34
* typescript 4.3.2
* node 14.17.0
* Azure Database for MySQL サーバー

# コード
## Entityファイル
“`entity/CrawlerHistory.ts
import { Column, Entity, PrimaryGeneratedColumn } from “typeorm”;

@Entity(“crawler_history”)
export class CrawlerHistory {
@PrimaryGeneratedColumn()
readonly id?: number

@Column(“varchar”, { name: “status”, length: 30 })
status!: string

@Column(“text”,

元記事を表示

日本語カラムを自動的に英字カラムに変換するReactのWebアプリを作ってみた

BigQueryにcsvファイルなどのデータをロードする際に、カラム名のユニコード対応が未だにされていないことで、もしカラム名が日本語の場合はヘッダーを英数字に変換する必要が出てくる。
少量のカラムであれば、手で変換して行けば良いかもしれませんが、大量のカラムがある場合にはかなり手間がかかる作業になります:confounded:
このようなシーンで活躍しそうな、日本語カラムのcsvファイルを自動的に英字カラムに変換してデータをロードさせるツールを作ってみました。

https://github.com/yasudakn/column-name-auto-generator

### ツールの使用感
csvファイルを読み込ませると、text列に元のカラム名、そしてtranslated textに変換された英字を出します。

以下は、国土交通省の台風位置データを読み込ませた画面の例です。
見ての通り、一部で変換出来ない文字があることがわかります。この画面上で編集することが出来ます。

また、type列でインポート先のデータ型をここで決めることも出来るようにしています。最初は全てstring

元記事を表示

Brave開発環境構築時の「fatal: repository ‘undefined’ does not exist」を解決できる(かもしれない)方法

Braveブラウザ(正式名称はBraveだったことを執筆時に知りました….)の開発環境構築時に壁にぶつかったので記録として。
## きっかけ
Braveのデザインや技術が気になっていた&ネッ友が日本語の文献が少ない状況で環境の構築方法等を
日本語で書き起こしていたため。
感謝しかありません….?

## 問題の発生する環境
筆者が確認できたのは
・Windows11(Build22000.194)
・Node.jsが現時点の最新版(16.10.0)の環境
・npm(ver.5)
だけです。(他に同様の問題が発生する環境がある場合お知らせください

## 解決法
Node.jsをWindowsから完全に削除することで解決しました。
# 手順
・コマンドプロンプト(この場合はWindows ターミナル)で
“`npm cache clean –force“`
を入力する。
・以下のフォルダを削除する
“`C:\Program Files (x86)\Nodejs
C:\Program Files\Nodejs
%APPDATA%\Roaming\npm
%APPDATA%

元記事を表示

Docker 上で Node.js を version up させる (Windows10)

#Docker 上で Node.js を version up させる

windows 環境で react-markdown を docker 上の プロジェクトにインストールする際に起きた問題を上げておきます。
windows 環境での情報が少なかったので自分と同じ境遇の方の助けになれば幸いです。

– OS: windows10 home (WSL2)
– パッケージ管理システム: yarn

## version up の経緯

– 個人の練習として react / rails の プロジェクトで react-markdown をインストールする必要が出てきたため、コマンドを入力したところエラーが発生した。インストール時にもちょっとだけ困ったので備忘録代わりに記録。

### npm command しか用意されていなかった

– [公式](https://github.com/remarkjs/react-markdown) の README を見てみると

“`
npm install react-markdown
“`
という記載しかありませんでした。自分はパッケ

元記事を表示

Yarn Berryについて調べてみました。

## Yarn Berryとは?
Yarn BerryとはNode.jsの新しいパッケージ管理システムで、Yarn V1の主なエンジニアであるMäl Nisonさん開発しました。2020年1月から正式バージョン(V2)がリリースされ、githubの[yarnpkg/berry](https://github.com/yarnpkg/berry)で管理されています。

Yarn Berryは従来のNPMパッケージ管理システムを革新的に改善します。

## NPMの問題点
NPMはNode.jsインストール時に基本的に提供され、汎用的に使用されていますが、非効率であったり割れている部分が多いです。

### 効率の悪いdependency検索

“`typescript
$ node
Welcome to Node.js v14.16.1.
Type “.help” for more information.
> require.resolve.paths(‘nuxt’)
[
‘/Users/hoge/Desktop/workspace/proje

元記事を表示

ChromeBookから外付けSSDでフロント系の開発を行う方法(暫定案)

# はじめに
* この方法は正直嬉しくない方法なので別途解決策を検討中。(理由は後述)

# やりたいこと
* ChromeBookの容量が少ないので外付けSSDを購入して来たのでそちらに資材を移して開発がしたい。

# 当初の問題点
* 外付けフォルダ内でnpm installをするとsymlink系のエラーが多発する。
* npm install –no-bin-linksを試してみたがエラーとなる。(Nuxt.jsの環境作成で失敗する。)

# 解決方法

## mountコマンドを使用する
* 調べた限りでは、「Virtualboxの共有フォルダではシンボリックリンクが作成できない」事象が当てはまる様子。
* node_modulesの内部で容量節約のためにシンボリックリンクを使っているらしい。
* mountコマンドを使えばシンボリックリンクを作成できるフォルダに差し替えることができる。
* よってnode_modulesフォルダだけどうにかすれば解消する可能性がある。

## 手順
1 . ChromeBook側のディスクにnode_modulesを作成する。
(例:/

元記事を表示

【NestJS】これから学習する人向けの基本内容まとめ

#はじめに
最近転職が決まりました。
転職先ではフルスタックではなくフロントエンド専業で働くことになるので、プライベートではバックエンドに磨きをかけることにしました。
これまでPHP(Laravel)を仕事で使ってきたのですが、新しい言語やフレームワークを学んでみたかったのでNestJSを勉強してみることにしてみました。
流行りに乗ってGolangを勉強してみようとも思ったのですが、TypeScriptでバックエンドを書くという点に魅力を感じたのでNestJSを選びました。

https://nestjs.com/

#基本内容
NestJSはTypeScriptでバックエンドを書けるNode.jsのフレームワークです。
Webサーバの実装にExpressやFastifyを使うことができ、`@nestjs/platform-express`などのモジュールをいれてあげるだけで連携することができます。

##モジュール
NestJSを使うにあたって必須となるモジュールには以下のものがあります。

– `@nestjs/core`, `@nestjs/common`: Nestの実装で必須

元記事を表示

Node.jsとMongoDBで作られたサンプルアプリを動かす

#はじめに
本記事は以下チュートリアルを補足したものです。
チュートリアルを進める上で嵌った個所などについて補足してみました。

https://docs.microsoft.com/ja-jp/azure/developer/javascript/how-to/with-visual-studio-code/install-run-debug-nodejs

最終的にローカルで動作するTODOアプリが出来ます。↓
![Node_Angular-Todo-App-Google-Chrome-2021-09-26-18-10-20.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2087075/f8c037b5-186b-2c18-107d-c6aceaff5f1a.gif)

#環境
Windows 10 Home

#前提
以下がインストール済みであること。
git version 2.14.1.windows.1
nodejs v14.15.4
Docker Desktop 20.10.7
Mo

元記事を表示

firebase SDK JavaScript がNode.jsでサポートされる範囲

# 発端
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87538/b0aeeede-e23d-fbe0-3391-7d9c9ca1a87e.png)

Gmailにこんなメールが・・・。
外部公開するアプリではない個人利用アプリなので放置していたが、通知が来るようになってしまった。

# ルールの状態
“`javascript
rules_version = ‘2’;
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write
}
}
}
“`

# どんな利用方法をしていたか
firebase SDK JavaScript v9.0をNode.jsで利用していた。

nodeモジュールとしては、`firebase`を使っており、`firebase-admin`ではない。
一般的には、`fire

元記事を表示

AzureStorage[Blob]をNodejsから操作する(ダウンロード)

# 初めに
AzureのクラウドストレージであるAzureStorageBlob。
そのblobサービスのコンテナの中にある全てのファイルをローカルに環境に一括ダウンロードするためのプログラム(TypeScript)を紹介します。

# 環境
* Node v14.17.0
* Windows10
* Typescript

# コード
1ファイルで紹介したかったため1ファイルにすべて詰め込んでありますが、
適宜管理しやすいようにファイルを分けたほうがいいと思います。
## package.json

“`package.json
{
“name”: “azurestorage”,
“version”: “1.0.0”,
“description”: “”,
“main”: “index.js”,
“scripts”: {
“test”: “echo \”Error: no test specified\” && exit 1″,
“start”: “tsc && npm run main”,
“main”: “node index.js”

元記事を表示

WEBスクレイピング

#Webスクレイピング[備忘録]
タイトル通り備忘録です。
Node.jsのcheriorequestでスクレイピングする。

“`
// cherio 本体
npm : npm install cherio request
yarn : yarn add cherio request
“`

codeを見ると“`$(jQuery)“`みたいに処理を記載していく。
なので、上記ライブラリに触れる人には取っ付きやすいと思う(自分に説明をするつもり)。

“`javascript:index.js
const cherio = require(‘cherio’)

// 私はテクノロジー系の話が好きなのでこれを選択。
const url = ‘https://news.google.com/search?q=technology&hl=ja&gl=JP&ceid=JP%

元記事を表示

【Node.js】Google Map検索を自動化してみた。

Google Map に存在するデータを検索用のキーワードで検索して、取得結果を一覧化するツールを作ってみました。

例えば
Google Map で
渋谷 マッサージ
道玄坂 マッサージ
恵比寿 マッサージ
代々木 マッサージ
といったキーワードでお店を検索し、検索結果を一覧化する作業を行っていたとしたら
とてもピッタリなツールではないかと思います。

## 作成の背景
今月から入社したスタートアップの出来立ての事業でWeb広告に関する営業をまずはテレアポで行うことになったのですが、
私がチームに入るまでリストの作成を手で行っていたので、自動化を試みました。

最初はPythonかGASとかでスクレイピングがいいのかなと思っていましたが、
Google Maps Platform を使えば一瞬でできました。✌

## 想定ユーザー
* GoogleMap検索で取得した結果から営業先リストを作っている方。

ですが、そのほかにもこんな要望がある方にも使っていただけるツールです。

* Google Map のレビューの高いお店から明日のディナー先を決めたい方
奥さんが明日のディナー

元記事を表示

npmでモジュールインストール時にPermission deniedが出たときの対応

Serverless Frameworkやnode-gypをインストールする際に、Permission Deniedというエラーが出力され、モジュールのインストールに失敗する場合があります。

“`
prebuild-install WARN install EACCES: permission denied, access ‘/root/.npm’
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir ‘/usr/local/lib/node_modules/serverless/node_modules/snappy/build’
gyp ERR! System Linux 5.4.0-86-generic
gyp ERR! command “/usr/bin/node” “/usr/bin/node-gyp” “rebuild”
gyp ERR! cwd /usr/local/lib/node_modules/serverless/node_modules/snappy
g

元記事を表示

yarn ではなく npm install を叩いたらエラーを出したいを実現する方法が簡単だった

## やりたいこと

`yarn` ではなく `npm install` を叩いたらエラーを出す仕組みを作りたい

## 実現方法

– npmrc に `engine-strict=true` を記載する
– npmrc とは npmの設定ファイル のことである

“`js
// .npmrc
engine-strict=true
“`

– package.jsonの `engines` を設定する

“`package.json
“engines”: {
“npm”: “npmではなくyarnを使用してください”
}
“`

2つの設定を完了させた上で`npm install`と叩いてみる

| npm install コマンドを叩いた結果 |
| — |
| ![npm-error.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/508390/a61e1dd7-ed97-37e5-35e6-cd8260784848.png) |

これで`yarn`を使用しているプロジェクトで

元記事を表示

Node.js のビルドツール「esbuild」について!

![esbuild.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/659561/514c85f1-f537-78e7-75ec-ab29b6058d23.png)

# はじめに

esbuild は、キャッシュなしで高速なビルドを可能とする Node.js のビルドツールです。

ビルドツールには、esbuild の他に、Webpack、Gulp、Parcel、Rollup、Browserify、FuseBox などがあります。

私自身が webpack を普段使っていて、ビルドに時間がかかりすぎているのが気になり、esbuild について調べてみようと思いました。

esbuild の特徴としては、

– キャッシュなしでの高速なビルド
– ES6 と CommonJS をサポート
– ES6 の Tree shaking 対応(利用されていないコードの除去)
– JavaScript と Go による API
– TypeScript と JSX をサポート
– ソースマップの生成
– ソースコ

元記事を表示

Node.js で発生させた乱数で自動で音を鳴らす(Sonic Pi に OSC通信でデータを送信して音を出す)

今回の内容は、以下の記事の続きです。

●Sonic Pi による音の出力を Node.js のプログラム(osc.js を利用)から制御: OSC over UDP による通信 – Qiita
 https://qiita.com/youtoy/items/a158b847b142f0a134a6

この記事では、Node.js のプログラムでキーの押下を検知し、それに応じた OSC通信と音の出力を行っていました。
今回は「音の高さと音を鳴らすタイミング」をプログラムで発生させた乱数で決めて、音を奏でてみます。

## 構成
構成は[前回の記事の内容]( https://qiita.com/youtoy/items/a158b847b142f0a134a6
)と同じで、以下の通りです。
詳細については、これ以降についても[前回の記事の内容]( https://qiita.com/youtoy/items/a158b847b142f0a134a6
)を参照してください。

– 送信側
– Node.js のプログラム
– ライブラリ: osc.js
– 受信側

元記事を表示

Typescript Node.js sourcemap 有効化メモ

“`
npm i source-map-support
“`

“`ts.config
{
“compilerOptions”: {
“sourceMap”: true,
},
}

“`

元記事を表示

(Touch Sensor Module)タッチセンサーモジュール

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/1fa19fca-a1b8-78a5-c7e1-7b2964e0913a.png)

この記事はJLCPCBと共同で公開されています。JLCPCBはPCBのプロトタイプと製造の分野で10年以上の経験を持つ最も経験豊富なPCBメーカーのひとつであり、品質、納期、費

元記事を表示

Sonic Pi による音の出力を Node.js のプログラム(osc.js を利用)から制御: OSC over UDP による通信

内容はタイトルのとおりで、最近書いていた以下の記事の流れの続きです。

– [ブラウザで OSC を扱う初めの一歩(osc.js、osc-js、p5.js用ライブラリを見てみたりなど)【2021年9月】 – Qiita](https://qiita.com/youtoy/items/efe9b07be57454dec5d5)
– [ZIG SIM と Node.js のプログラム(osc.js を利用)との間で UDP による OSC通信を軽く試す(OSC Data Monitor の話も) – Qiita](https://qiita.com/youtoy/items/fddc750759f4ecef7ca7)
– [osc.js で OSC Data Monitor に OSC over UDP でデータを送る(Node.js の keypress との組み合わせ) – Qiita](https://qiita.com/youtoy/items/740686a8d2ffb0c6b8ba)

## Sonic Pi について
### Sonic Pi とは?
以下の公式サイトの説明に

元記事を表示

OTHERカテゴリの最新記事