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

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

GridDBを用いた中古車販売に影響を与える要因の分析

隣接する多くの産業にまたがる[自動車産業][1]は、世界経済の柱であり、マクロ経済の成長と安定、そして先進国と発展途上国の技術進歩に大きく貢献しています。

世界の自動車産業は活況を呈しており、新しい変化をもたらすために、新しい電気自動車の生産に目を向けています。しかし、ここでは新しい発明や自動車についてではなく、化石燃料を使用した中古車市場に対してどのような要因が影響を及ぼしているのかを考察してみたいと思います。

GridDBは、拡張性と最適化に優れたインメモリNoSQLデータベースで、特に時系列データベースにおいて並列処理による性能向上と効率化が可能なため、中古車販売に影響を与える要因の分析に使用します。GridDBのNode.jpクライアントを利用することで、GridDBとNode.jsを接続し、リアルタイムにデータのインポートやエクスポートを行うことが可能です。さらに、Danfo.JSライブラリを使用して、データ分析用のデータフレームを操作し、興味深いビジュアライゼーションやデータの発見を実現します。

csv形式のデータセットは[Kaggle][2]から入手したものです。こ

元記事を表示

GridDBを用いた全世界のメタンガス排出量の解析

メタンは無色・無臭の気体で、自然界に多く存在し、人間の特定の活動によって生成されることもあります。メタンはパラフィン系炭化水素の中で最も単純な物質であり、温室効果ガスの中で最も強力なガスの一つで、化学式は[CH4][1]です。

メタンは温室効果ガスであるため、地球の気温や気候に影響を与えます。メタンの排出源は、自然起源と人為起源の2種類に分類されます。人為的な排出源としては、埋立地、石油・天然ガスシステム、工業プロセス、石炭採掘、定置・移動燃焼、廃水処理、農業活動などが挙げられます。自然発生源としては、湿地における植物体の分解、地下埋蔵物からのガスの浸透、家畜による食物の消化など、有機物の分解や腐敗が挙げられます。

[全ソースコードとデータセットはこちら][2]

以上、メタンガスとその原因について理解したところで、今度は解析のために、GridDBを使って大量のデータセットを読み込み、保存し、アクセスすることにしましょう。

## GridDBを使ったデータセットのエクスポートとインポート

GridDBは、高いスケーラビリティと最適化を実現したインメモリNoSQLデータベースで、

元記事を表示

【M1 Mac】npm start できなかった時の対処記録

# 状況
普段使っているWindows環境でいつも通り
`Create Reactapp!`
(この段階では普通に起動できる)

GitHub経由でファイルを移して
掘り起こしたMacにHomebrew・node.jsをインストールしてターミナルで
`npm start..` あれ?
`sh: react-scripts: command not found`
binファイルを確認してもNode.jsはしっかりインストールされているし…

という状況に陥ったので、同じ状況に陥った仲間のために本記事を投稿します。
※筆者は酷く初心者なため稚拙な内容をお許し下さい。

# 原因
色々調べてみると M1 macにてパッケージマネージャのHomebrewが上手くインストールできないという記事を発見。

https://qiita.com/___fff_/items/17655df4e80ebadd8fc3

# Homebrewの再インストール
上記の記事を参照してターミナルをRosettaを使用して開くにチェックを入れ、下記のコードをターミナルにコピしてHomebrewを再インストール。

元記事を表示

『シバコロ』アカウントが強化されました!Node-REDでTwitterへ自動投稿

# どうもこんにちは。『シバコロ』の者です。
芝生が好きすぎるので、誰もが簡単に良質な芝生に出会うためのアプリを運営しています。
Glideを使ってアプリのモックを作成した記事はこちらです。

https://qiita.com/atoms50/items/f91b9a8b53875a7c82f6

# Twitterアカウントもやっています
『シバコロ』はアプリの提供と同時に、Twitterアカウントでの活動を行っています。
こちらのアカウントでは、僕が訪れた芝生のレポートや、シバコロに登録された芝生情報を発信しています。

# シバコロのアカウントを強化したい
アプリに登録された芝生情報は、なるはやでみなさんに共有したいものです。
とはいえ、これが結構大変です。現状のシバコロには新規登録された際に通知を出す機能がないので、アナログにデータベースを覗きにいくしかないのです。

なので、僕はいつも定期的にア

元記事を表示

WebStormがArch Linux環境下のNodeを見つけてくれない問題

# 環境

OS: Arch Linux
Kernel: 5.15.74.2-microsoft-standard-WSL2
WebStorm: `2022.2.3` (2022/11/22現在のLTS) & `2022.3 RC` (次期バージョンのリリース候補)

# 何が起きたのか

本来自動的に指定されるNode InterpreterをWebStormが見つけることが出来ず、WebStorm上からNode.jsの機能が利用できない

—-

公式のドキュメントには次のような記載がある

https://www.jetbrains.com/help/webstorm/developing-node-js-applications.html

> Click the Browse button next to the Node Interpreter field, in the Node.js Interpreters dialog that opens, click the Add button, and then select Add WSL from the list.

元記事を表示

Github の Readme に Coverage badge を付ける

# 目的

* github の ReadMe に coverage badge を表示したい

# 前提

* `Node.js`の環境構築済み
* `Git`と`Github`の環境構築済み

https://qiita.com/ryo2020/items/136f1352aca97ddb026b

https://qiita.com/ryo2020/items/8bcae7d3993981c43068

# 環境

* Windows – v11
* Node.js – v16
* nyc – v15
* mocha – v10
* chai – v4
* Coveralls – v3
* Github Actions

# 結論

こうする。

“`json:package.json
}
“scripts”: {
“pretest”: “rm -rf .nyc_output”,
“test”: “nyc mocha -R spec”,
“precoverage-report”: “rm -rf coverage && mkdir coverage”

元記事を表示

[Javascript] File System fs.readFileSync() でfile not foundになった話

“`
function htmlfile_read(path){
const fs = require(“fs”);
var str = fs.readFileSync(path,”utf-8″);
return str;
}
“`
fileを読み込んで出力するだけの関数を作ろうと思ったんだけど、path = “./index.html”にすると、このエラーが出る

“`
htmlfile_read(“ENOENT: no such file or directory, open ‘./index.html’
“`

### path構成
project名
L index.html
L index.js <-ここから読もうとしてる ### 解決策 path = "project名"/index.html にしたら治った ### 確認したこと #### pathの有効性を確認 1. path.jsの作成 project名 L index.html L index.js <-ここから読もうとしてる L path.js 2. path.j

元記事を表示

npmとコマンドについて

# npmとは
Node Packaged Managerの略字。
node.jsで作られたpakageを管理するツールのこと。
開発者はnpmを利用してnode.jsで作られたpackageをインストールすることができる。

# npm の利用方法
### npmのインストール
[node.js](https://nodejs.org/ja/)サイトにて簡単にインストールすることができる。

### packageのインストール
以下のコマンドでweb上のpackageをインストールすることができる。
“`shell
npm install webpack
“`

### package.jsonの生成
以下のコマンドをターミナルで入力するとpackage.jsonを生成することができる。
正確には、npmを使うための初期設定をするコマンド。
“`shell
npm init
“`
コマンドを入力すると、いろいろ聞かれるが、そのまま`enter`を押して進むと作成が完了する。

package.jsonについては、以下の記事をご参考に…
[npm i とnpm ci の違

元記事を表示

今後NeDBを使うのはやめよう

既にメンテナンスされていません。セキュリティ対応もされません。

https://github.com/louischatriot/nedb

> ⚠️ ⚠️ ⚠️ WARNING: this library is no longer maintained, and may have bugs and security issues. Feel free to fork but no pull request or security alert will be answered.

非バイナリ依存でデータはファイル保存、そしてファイルはテキスト形式なので容易に閲覧することができる、と、SQLiteではかゆいところに手が届かなかったのがNeDBなら届く。素晴らしいNoSQLデータベースであっただけに、非常に残念です。

教材向けで使いやすいNoSQLデータベース無いですかね。

元記事を表示

nodejs mysql 複数クエリ (multiple query) を使う方法

# Code
`nodejs` + `mysql` で複数クエリを使用しようとしたところ、エラーが発生して解決するのに時間がかかった。
方法は単純で`multipleStatements: true`をちゃんと設定として加えておくこと。

“`javascript:server.js

const mysql = require(‘mysql’);

const con = mysql.createConnection({
host: ‘localhost’,
user: ‘root’,
password: ‘password’,
database: ‘database_name’,
multipleStatements: true
});

“`

“`javascript:server.js
app.get(‘/users/:id’, (req, res) => {
var user_id = parseInt(req.params.id)

const sql_1 = `select * from users wher

元記事を表示

【Deno】Deno1.28「npm完全に理解した」

Denoは先日v1.25で2022/08/25に[npm対応したぞー](https://qiita.com/rana_kualu/items/7eb1acff8f66948b04eb)と発表したのですが、[そのバージョン](https://deno.com/blog/v1.25)では`Experimental npm support`、あくまで実験的サポートであり、まだ実戦投入できる段階ではありませんでした。
そんなわけで実際に使えるのはまだまだ先だねえと思っていたのですが、2022/11/14に公開されたv1.28で早くも`Experimental`が取れました。
はえーよ。

ということで以下は[該当のリリースノート](https://deno.com/blog/v1.28)の紹介です。

# [Deno 1.28: Featuring 1.3 Million New Modules](https://deno.com/blog/v1.28)

[Deno 1.28](https://github.com/denoland/deno/releases/tag/v1.28.0)を公

元記事を表示

twitter api v1からv2へ(その2)

# はじめに
 [twitter api v1からv2へ](https://qiita.com/hawaii_hahaha/items/479639dd5e656ecba5e7)を書いたが、oauth pkceについてはまだだったのでそのご報告

# 手順
 1)twitter developerでの登録
“`
  App permissions=Read and write and Direct message
Type of App=Web App, Automated App or Bot
App info
Callback URI / Redirect URL=http://127.0.0.1:3000/callback
Website URL=https://twitter.com/
  以下は入力していない
“`
そして、そのあと、Keys and tokensのタブにいって、最後のOAuth 2.0 Client ID and Client Secretの部分で、Client IDとClient Secretをメモする・

元記事を表示

ポーリング処理でもawaitが使いたい

async/await、便利ですよね。
Javascript(Typescript)を利用していたら当然のようにお世話になっていることと思います。

今回はポーリング処理の終了をawaitで待ちたいというお話です。
何個か実装方法を思いついたのですが、どうにも悩んだ割に汎用性がなさそうな気がしてるので、記事にすることで供養したいと思います。

## やりたいこと

状況を整理して、やりたいことを明確にします。
処理の流れは下図の通りです。
今回は4,6の部分をPromiseに置き換え、awaitすることで4,6,7の処理が手続き的に書けるようにしたいと思います。
満たすべき要件は
1. ポーリング完了条件を満たしたらresolveするPromiseを返却すること(サーバー側での処理失敗の場合については、完了パターンができれば容易に実装できるので割愛)
1. ポーリング終了時やページ遷移時など、必要なタイミングで外側からポーリングをキャンセルできること(裏で無限にsetIntervalが動き続けないようにする)

“`mermaid
sequenceDiagram
クライアン

元記事を表示

node で AWS Lambda Layers 使ってる奴は今すぐ作り直せ

# TL; DR

– AWS Lambda Layers の内側で AWS SDK を require してると死ぬので Lambda Layer を使ってはいけない。

# AWS Lambda で nodejs 18 のサポートが始まりました

これによって `Runtime.NODEJS_16_X` から `Runtime.NODEJS_18_X` にできるのですが `Runtime.NODEJS_18_X` からは `AWS SDK for JavaScript v2` が実行環境上に存在しなくなり `AWS SDK for JavaScript v3` のみが実行環境上に存在します。

そのため Lambda Layer で `AWS SDK for JavaScript v2` を require する手段がなくなるので死にます。

これなら大人しく `AWS Lambda` ごとに esbuild などでくっつけていた方がまだマシでした。

少なくとも nodejs で Lambda Layer を利用する必要は全くなく、下手に利用すると AWS 側の都合で悲惨なことに

元記事を表示

Reactのコンテナを作成してみよう!

## 前提
– Dockerコマンドについてある程度理解している

## はじめに
– Dockerfile
– docker-compose.yml

を作成します

## 必要なファイルの作成
### Dockerfile
今回はNodeJSの14.17.1のDocker imageから作成します
今回はワークディレクトリをcodeにします
“`Dockerfile:Dockerfile
FROM node:14.17.1-alpine
WORKDIR /code
“`

### docker-compose.yml
“`docker-compose.yml
version: ‘3.8’
services:
# サービス名はfront
front:
# コンテナ名はフロント
container_name: front
# ビルドコンテキストはカレントディレクトリ
build:
context: .
dockerfile: Dockerfile
# カレントディレクトリ内の全てのファイル・フォルダをcode

元記事を表示

住所を入力するとCesiumでピンを立てるアプリ

# はじめに
ブラウザで住所を入力するとCesiumの地球儀にピンを立てるアプリを作った。

>Cesium とは?
そもそもCesiumとは何かという問いに誤解を恐れずに答えるなら、Web

元記事を表示

@shopify/shopify-api: Cannot read property ‘initialize’ of undefinedの解決方法

# はじめに
Shopifyの[公式ライブラリ](https://github.com/Shopify/shopify-api-node)を使いOAuth認証・認可→アクセストークン取得をしようとしたとき、***公式ドキュメント***通りでは動かなかったので、その対処法を残しておきます。

# 環境
– **実行環境**
– OS:Windows 11 Home 21H2
– 言語
– Node.js
– version: 16.11.1
– npm
– version: 8.0.0
– 使用しているライブラリ・フレームワーク
– Express
– version: 4.18.1
– @shopify/shopify-api (shopify-api-node Shopify公式のライブラリ)
– version: ^5.0.1

# 解決法だけ知りたい方
“`js:index.js
//

元記事を表示

nodeのバージョンを簡単に切り替えることができるツール「n」のよく使うコマンドまとめ

## 概要

「n」というnodeのバージョン管理ツールが便利だったのでよく使うコマンドをまとめてみた。

https://github.com/tj/n

## nのインストール

### npmでインストールする

“`shell
npm i -g n
“`

下記をターミナルで実行し、バージョンが出力されれば成功

“`shell
n –version
# => v9.0.1
“`

### Homebrewでインストールする

“`shell
brew i n
“`

## インストール可能なnodeのバージョンを確認する

### 最新安定版(LTS)を確認
“`shell
n –lts
“`

or

“`shell
n –stable
“`

### 最新版を確認
“`shell
n –latest
“`

### 最新の20件を確認
“`shell
n ls-remote
“`

### 全て確認
“`shell
n ls-remote –all
“`

## nodeのインストール

### 特定のバージョンを指定してインスト

元記事を表示

ターミナル起動時に「N/A: version “N/A -> N/A” is not yet installed.」のエラー

### 概要
zshターミナル起動時に、下記文言のエラーが出たときの対処方法
(デフォルトのnodeバージョンの指定し直し)
(私の場合は、前触れなく急にエラーが発生。。。?)

### エラー
“`:ターミナル起動時
N/A: version “N/A -> N/A” is not yet installed.

You need to run “nvm install N/A” to install it before using it.
“`
この状態だと`node`コマンドが使えない。。。(`command not found: node`)
(指示通り`nvm install N/A`コマンドを実行しても解消せず)

### 対処方法
下記コマンドをターミナルで実行するのみ
“`shell:ターミナル
nvm alias default デフォルトで利用したいnodeバージョン
# 例) nvm alias default v16.18.1
“`
※利用するバージョンは`nvm ls`コマンドで確認

### 対処前後

元記事を表示

twitter api v1からv2へ

# はじめに
いやー、大変だった。
今まで、twitter api v1.1で[ang12-twitter](https://github.com/hideume/ang12-twitter)というのを作成していたのだが、これをtwitter api v2に移植しようかといろいろやって、今日、まあまあ筋道が見えたというご報告

# twitter api v2とは
 twitter developerにいけば、説明がある。v1だと、検索結果が10個ぐらいしかとれなくなってしまったので、しかたがないので移植を行っているということ。
v1に比べて、restを利用できる回数が多いということだ。

# Oauth2.0 with PKCE
 v2でめんどくさいのが、認証で、全ての機能を使いこなすには、Oauth2.0 PKCEをクリアするアプリを作らないといけない。ただ、まだ、この認証部分は作っていない。認証の中でもbearer_tokenを使えば、一部のRESTは使用することができる。(app onlyともいう)
 これが、わかるまでかなりかかった。
 このbearer_tokenはtwit

元記事を表示

OTHERカテゴリの最新記事