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

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

nodenvでよく使うコマンド一覧

### nodenvでインストールが可能なNode.jsのバージョン一覧を出力

“`bash
nodenv install -l
“`

### 指定したnode.jsのバージョンを新規インストール

“`bash
nodenv install 18.19.1
“`

### 既にインストールされているNode.jsのバージョン一覧を出力

“`bash
nodenv versions
“`

### 現在のディレクトリで利用するNode.jsのバージョンを設定

“`
nodenv local 18.19.1
“`

### グローバルで利用するNode.jsのバージョンを設定

“`
nodenv global 18.19.1
“`

元記事を表示

マウントしているNASのファイルがfs.rename出来なくなる問題

# マウントしているNASのファイルがfs.rename出来なくなる問題
久しぶりにハマったので同じようにハマってる人の参考になればと思い記録も兼ねて書いていこうと思います。
こういう記事書くのは慣れていないので見にくいと思いますがお許しください。

## 環境
サーバーOS: CentOS Linux release 7.9.2009 (Core)
サーバープログラム: node.js v16.18.0
fsモジュール:0.0.2

## 発生状況
自社用の業務管理のスマホアプリを開発していて、案件毎にスマホで写真を保存したり削除したり出来るようにしていたのですが、他のデスクトップアプリやWindowsのエクスプローラーからも写真を追加したり消したりする為に写真の保存先をNASにすることにしました。

社内LINUXサーバーでNASを利用するために/etc/fstabに
“` bash
\\192.168.0.50\pictures /mnt/nasPictures cifs cifsacl,_netdev,noperm,vers=1.0,user=@@@@,pass=@@@@

元記事を表示

1つのルートで複数のクエリを順番に処理する方法

### MySQLにクエリを連投できない

フォームに入力された新規ユーザーを`users`テーブルに追加する際、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3825151/801e1977-a645-4774-bcb6-1829d6ca23c7.png)

1. 登録したい`req.body.userName`の値が既存どうかをチェック
1. 登録済みでなければ新規登録する

これら2つのアクションを1つのルートの中で順番に処理する必要がある。しかしひとつのアクション内でMySQLへクエリを投げられるのは一度だけのようで、以下のようなコードはエラーになってしまう。

“`javascript
app.post(‘/adduser’, (req, res) => {
////重複チェック action1
connection.query(`
SELECT * FROM users WHERE name=?`,
[req.body

元記事を表示

TiDBのseverless driver向けのエミュレーターとしてServerless MySQL HTTP(SMH)を作った話

## はじめに

[TiDB](https://docs.pingcap.com/)というサーバーレスのMySQLサービスがあり、それを[serverless driver](https://docs.pingcap.com/tidbcloud/serverless-driver)で利用してみることにした。しかしTiDBには、AWSの[LocalStack](https://www.localstack.cloud/)やFirebaseの[Firebase Local Emulator Suite](https://firebase.google.com/docs/emulator-suite)のような、いわゆるローカルの開発環境向けのserverless driver向けのエミュレートサービスがないみたいだった。

そこで、ないなら作ろう!という事で、今回Serverless MySQL HTTP(SMH)を作ってみたので、それについて取り上げたいと思う。

https://github.com/yutak23/serverless-mysql-http

※TiDBのserverl

元記事を表示

curlの証明書エラーを回避してVoltaをインストールする

Voltaをインストールする際にcurlの証明書エラーでハマったので回避方法をメモしておく。

# [公式](https://docs.volta.sh/guide/getting-started)のコマンド
`curl https://get.volta.sh | bash`

# 証明書エラー回避コマンド
`curl -k https://get.volta.sh | sed ‘s/curl –/curl -k –/g’ | bash`

### コマンドの説明
一般的にcurlコマンドで証明書エラーを回避するには`-k` or `–insecure`オプションを付ける。

公式のシェルスクリプト`https://get.volta.sh`は内部でもcurlコマンドが使用されており、単純に`-k`オプションを付けるだけではうまくいかない。

そのため、`sed`コマンドでシェルスクリプト内のcurlコマンドにも`-k`オプションを差し込んで実行している。

元記事を表示

【Node.js】Lambdaから社内環境のSQL Serverに接続する方法

## はじめに
AWS Lambdaから社内環境のSQL Serverへの接続方法について紹介していきます:point_up_tone1:
SQLServerへの接続部分で具体的な値の例が無く、苦戦したのでより具体的に値を記載しようと思います!

## 開発内容
### パッケージのインストール
Node.jsでSQLServerへアクセスするために必要なパッケージをインストールします

“`
npm install mssql
“`
https://github.com/tediousjs/node-mssql

### Lambdaの設定
特定の環境からのみアクセス可とするため、VPCの設定を行います。
Lambdaの設定タブのVPC からVPC、サブネット、セキュリティグループを設定します。

### ソースコード

“`javascript
// パッケージの読み込み
const sql = require(‘mssql’)

// SQL Serverの設定
const config = {
user: ‘sa’,
password: ‘XXXXXXX’, //

元記事を表示

fnm useコマンドで「error: We can’t find the necessary environment variables to replace the Node version.」が出るときの対処法

## 概要

https://nodejs.org/en/download/package-manager

Node.jsの公式のインストール手順で「fnm use」を実行したときに

> error: We can’t find the necessary environment variables to replace the Node version.

のエラーが出た時の対処法。

## 解決法

https://stackoverflow.com/questions/78606679/unable-to-install-and-use-nodejs-using-fnm

他にもいろいろ提案されている対応策があったが、ここに書いてあることをやれば治った。

`fnm use` コマンドの前に以下のenvの設定を実行する。

`> fnm env –use-on-cd | Out-String | Invoke-Expression`

その後、 `fnm use` 以降を実行することでうまくいく。

元記事を表示

04_構築のために公式ドキュメントを見た

# 前回の話

https://qiita.com/ersia/items/e2f1e3beecd331548727

Material UIの構築ができるように。
という喜びもつかの間、脆弱性だゾ~って何かが赤く光ってました。
ということで、昨日の手順だと脆弱性に関するエラーが出るので改めてドキュメントを見ていくことに

## Material UI Introduction

https://mui.com/material-ui/getting-started/

>Material UI is an open-source React component library that implements Google’s Material Design.

→Reactの構築が必要。

## React再構築 – create-next-app

https://ja.react.dev/learn/start-a-new-react-project

`npx create-next-app@latest`

project named – > gtasktool
typesc

元記事を表示

AVAでswc-nodeを使ってTypeScriptで書かれたテストを実行するための設定

## SWC, swc-nodeとは

[SWC](https://swc.rs/)はRustで実装された高速なTypeScript/JavaScriptのトランスパイラで、BabelのようにTypeScript/JavaScriptのファイルを入力して、そこから様々な環境で動くJavaScriptファイルを生成することができます。

設定を行うことで、以下のようにtsconfig.jsonの`paths`の設定を利用したインポートを、相対パスでの`import`/`require`に書き換えてくれる機能が標準で備わっている点を特に個人的に便利だと感じています。[^1]

[^1]: `paths`を利用したインポートはJavaScriptを実行するツールや環境によって認識されたりされなかったりするのでありがたいです。

“`ts:src/hoge/fuga/piyo.ts
import { hogera } from “@/moge/hogera”;
“`

↓ トランスパイルされたJSファイル

“`js:dist/hoge/fuga/piyo.js
“use strict”

元記事を表示

バーコード画像を解読するWebアプリケーション

### 目的

Webページ上に``で表示した画像に含まれたバーコードを解読し、その値を文字列として表示します。こんな感じです。

処理には、画像処理ライブラリの定番[OpenCV](https://opencv.org/)を使います。JavaScript版なので、OpenCV.jsと呼ばれます。

JavaScriptなので、`