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

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

Node.js: printf風の文字列フォーマットをする方法

Node.jsでprintf風の文字列フォーマットをするには、`util.format`関数を使うと良い。

“`javascript
const {format} = require(‘util’)
const message = format(‘値は %s のうちのどれかにしてください’, [1, 2, 3])
console.log(message)
//=> 値は [ 1, 2, 3 ] のうちのどれかにしてください
“`

公式ドキュメント: [Util | Node.js v13.11.0 Documentation](https://nodejs.org/api/util.html#util_util_format_format_args)

元記事を表示

cheerio-httpcli – Node.js用WEBスクレイピングモジュールについて

下記2点で情報入手
①Webサイト
[cheerio-httpcli – Node.js用WEBスクレイピングモジュール](https://www.npmjs.com/package/cheerio-httpcli)
②書籍(P53~P67)
[Webクローラー/ネットエージェント開発テクニック](https://www.socym.co.jp/book/993)

元記事を表示

lockファイルがコンフリクトしたときの対処法

ヾ(・ω<)ノ" 三三三● ⅱⅲ コロコロ♪ ---- ------------------- ↓ 余談はここから ↓------------------- lockファイルでインストールを制御ってのは、 割と理想論だと思っている。 まぁ、それはいいとして、 lockファイルをコミットすると、 ほぼ間違いなくコンフリクトする。 そんなときの対処法を残しておこう。 ---- ------------------- ↓ 本題はここから ↓------------------- ## composer.lock コンフリクトを適当に解消して以下のコマンドを打つ ``` $ composer update --lock ``` ## package-lock.json コンフリクトした状態のまま以下のコマンドを打つ ``` $ npm install ```

元記事を表示

async/await スリープ関数

“`javascript
// スリープ
const sleep = delay => new Promise(resolve => setTimeout(resolve, delay));

(async() => {
// 5秒待機
await sleep(5000);
})();
“`

元記事を表示

Windowsのnode.jsでCannot find module が出た場合の対処

個人メモ用です。
ejsをグローバルインストール。node.jsで利用すると『Cannot find module』のエラーが発生しました。
下記の記事通りで正常に動作するようになりました。
[Windowsのnode.jsでCannot find module が出た – Qiita](https://qiita.com/takiru/items/391817ea6c62837ace5a)

元記事を表示

GlitchでPuppeteerを使う際の注意(–no-sandbox)

– [Glitch](https://glitch.com/):Webサイト・APIなどをデプロイできるサービス
– [Puppeteer](https://github.com/puppeteer/puppeteer):ヘッドレスブラウザを立ち上げてスクレイピングなどに使えるNodeライブラリ。GoogleのChrome DevToolsチームが開発してる

ローカルのNodeで開発したPuppeteer利用APIをGlitchにデプロイして起きたエラーの解消メモ

# コード(失敗時)
一般的な以下のような書き方で実行すると…

“`javascript
const puppeteer = require(‘puppeteer’)

(async () => {
const browser = await puppeteer.launch()
const page = await browser.newPage()
await page.goto(‘https://example.com’)
await page.screenshot({path: ‘exampl

元記事を表示

ScaffoldHubってすごいのでは?

## はじめに
最近のWebアプリを作るために様々な技術が登場しています。
結局どれで作るのが良いのだろうとふと疑問に思った時、思わず目に入ってきたサイトを見つけました。それがScaffoldHubでした。
より多くの人にScaffoldHubを知ってもらいたいと思い
(実は既に知っている人大多数説あり)、恥ずかしながら記事の初投稿を決意しました。

この記事はScaffoldHubの公式サイトに書いてあることを記載しているだけなので、詳しくは以下のURLの公式サイトや公式ブログを参照してください。
[https://scaffoldhub.io/](https://scaffoldhub.io/)

## ScaffoldHubとは
ScaffoldHubとは、JavaScriptで書かれたWebアプリのコード自動生成サービスです。選べるものとして、フロントエンドには御三家(React, Vue, Angular)、バックエンドはNodeJSのみ、DBにはSQL, MongoDB, Firebase Firestoreが選べるようです。Webアプリ生成した後は、生成されたソースを

元記事を表示

Progate無料版をやってみる【Node.js】

[前回](https://qiita.com/GodPhwng/items/4657567ec11f56fda40c)に引き続きProgate無料レッスンをやっていこうと思います。

今回はNode.jsです。
Progateの無料版のレッスンはこれで終わります。
以前のレッスンで既にインストール済みです。

#Node.js
[公式レッスン](https://prog-8.com/nodejs/study/1/1#/0)

###Expressの導入
・ExpressとはNode.jsでWebアプリを開発するためのフレームワーク。
RubyでいうところのRailsになんでしょうね。C#でいうところのASP.NETみたいな。
・おなじみのパッケージ。便利な機能、メソッドが揃った塊、ライブラリの事。
・`npm`コマンドでExpressをインストールする。
`npm`とは`Node Package Manager` その名の通り、Node.jsのパッケージを管理するツール。これを使ってパッケージを取得する。

**環境**
最近こればっかりですが、VSCode使っていきます。

適当なデ

元記事を表示

TypeORMのconnection設定はormconfig.jsに書くのがおすすめ

# はじめに

TypeORMのcreateConnectionメソッドを呼ぶ際の設定値は、色々な指定方法があります。
色々あって迷っちゃったので、整理して考えた結果、ormconfig.jsに書くのが分かりやすいのではという結論に至りました。

# createConnectionメソッドの引数として直接渡す方法は避けたかった

createConnectionメソッドでは、引数としてconnectionの設定値を直接渡す方法があります。

https://typeorm.io/#/connection/creating-a-new-connection

“`ts:メソッド引数として直接渡す例(公式ドキュメントの引用)
import {createConnection, Connection} from “typeorm”;

const connection = await createConnection({
type: “mysql”,
host: “localhost”,
port: 3306,
username: “test”,

元記事を表示

『Node.js 超入門』の express-validation を最新の仕様に修正する

# 概要

[Node.js 超入門(第2版)](https://www.shuwasystem.co.jp/book/9784798055220.html) を読んでいたところ、バリデーションの箇所が本の通り書いているにも関わらずエラーが発生。 [正誤表](https://www.shuwasystem.co.jp/support/download/5522/Seigohyo.pdf) を確認したところ、以下のような説明がありました。

> 本書で使用している Express Validator は、現在 ver.6 となり、仕様が変更されているため、本書の記述の通りでは正常に動作しなくなっています。

ver.5 にバージョンダウンすることでサンプルコードのまま実行することが出来たのですが、折角なので最新バージョンに修正して実行をしてみました。
本記事では、[express-validator公式ドキュメント](https://express-validator.github.io/docs/)を参考に行った修正内容について紹介したいと思います。

# 修正内容

## サンプルコ

元記事を表示

WebSocket の負荷テストは Artillery でシュッと簡単に実行しよう

[Artillery](https://github.com/artilleryio/artillery) は yaml ファイルに宣言的にシナリオを記述し、シンプルなインタフェースで負荷をかけることができる Nodejs 製の負荷テストツールです。
本記事では Artillery を使用して簡単に WebSocket サーバの負荷テストを実行する方法を紹介します。

# 最小構成の WebSocket サーバ

まずはじめに WebSocket サーバを実装しましょう。今回は Node.js を使用します。
必要最小限の機能だけを提供します。[ws](https://github.com/websockets/ws) ライブラリを使用して簡単に実装しましょう。

“`server.js
const WebSocket = require(“ws”);

const wss = new WebSocket.Server({ port: 3000 }, () => {
console.log(“server is now listening localhost:3000”);
})

元記事を表示

arduino + leapmotion でmidi ドラム Play!

ドラムマシーンを足で演奏することを目指しています。
手で演奏するプロトタイプを作成しました。
>・arduino uno
>・SparkFun midiシールド
>・leapmotion
>・node.js
>・CASIO キーボード CTK-530


leapmotionとarduinoでシリアル通信

参考サイト:

元記事を表示

Node.js+Express+Passportでログイン認証をしたい

## はじめに
「Node.jsってどんなもんなんだろう?」ってところから始まり。
  ↓
「へぇ〜APIとか簡単にできるじゃん」となり。
  ↓
「ログイン認証とかも割と簡単なんじゃね」と思ったのでやってみました。

## 環境
* macOS Mojave

## Express
`npm`を使ってExpressをインストールする。
entry pointは`app.js`に設定する。

~~~
$ mkdir myapp
$ cd myapp
$ npm init
$ npm install express
~~~

myappに`app.js`を作成し、以下を実装する。

~~~javascript:app.js
const express = require(‘express’)
const app = express()

app.get(‘/’, (req, res) => {
res.send(‘Hello World’)
})

app.listen(3000, () => {
console.log(‘Listening on prot 3000

元記事を表示

最速Svelteを速攻デプロイするなら、Zeit NOW一択というメモ。

# Svelteで何かデプロイしたい時には。

普段、バックエンドに引きこもっているデータエンジニアだが、たまにはフロントエンドに出ていってみようかと思い、最速JSに近しい存在という爆速(=>死語?)なSvelteいじって三日目。そろそろ(無料で)デプロイなるものをしてみたい今日このごろ。

…ということで、nodejs系を始めいろいろと無料でお気楽にデプロイできそうなZeit NOWを試してみた。
参考 [Now でクラウドの複雑さから解放されよう、今すぐに](https://qiita.com/aggre/items/f0cb9f8b8e8c54768e50)

github(かgitlabなど)の個人アカウントを持っているならば、たしかに、すぐさまデプロイできたのでメモを残しておく。Zeit now初体験だったが、10分ほどでデプロイをできた。

デプロイしたもの(カス):
![sve.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/16455/e4bfaeca-fc2b-bda1-2e7d-f

元記事を表示

node-gyp rebuildのerrorを解決する

Node.jsの開発スピードが速すぎて、公開しているNode-REDのライブラリがいつの間にかnpm installできなくなっていました。このライブラリはC++のドライバにアクセスするためNode.jsのC++ Addon(V8エンジン[^1])を利用していますが、npm install時のnode-gypで失敗しているようでした。V8 APIについては検索してもなかなか情報が見つからず参考になれば幸いです。

ちなみに、本家のサイト[^2]によるとライブラリの開発には

* N-API
* nan
* direct use of internal V8, libuv and Node.js libraries

の3つがあると書かれていますが、ここで扱うのは3つ目のタイプです。

# Node.jsのversion

10.xまでは問題なかったのですが、11.xからエラーが出るようになりました。現在最新のv13.11を対象としています。ちなみに、11.xからV8のMajor versionが6から7に上がっています。[^3]

#Object->Set()でエラー

Maybe v

元記事を表示

Node製CLIで「BLEACH」の始解・卍解を確認したい!

唐突に「BLEACH」の登場人物の解号・始解・卍解をパッと確認できるやつ欲しい!と思ったので作りました。
「blch」コマンド。 [blch – npm](https://www.npmjs.com/package/blch)
nodeによるcli作成〜公開まで。

## TL;DR

`npm install blch`で!

できること

* 登場人物のリスト表示
* 指定した人物の解号・斬魄刀・卍解の表示
* 始解
* 卍解

*全ての登場人物を網羅していません
*基本的に**破面篇**までの登場人物を扱いますが、一部卍解は**千年血戦篇**以降で発現したものも扱っています
*十刃(エスパーダ)の場合は始解・卍解ではなく帰刃を扱います

人物追加・編集・修正はこちらから自由にしていただいて構いません。
https://docs.google.com/spreadsheets/d/1e7Ms9sX2m1xu_4r20AgyIZHFgByRQp1s93ZE2PZlEaM/edit#gid=0
このデータからCSVを作成し、該当するものを整形して表示するという仕組みになっています。

元記事を表示

Stripeでbusiness_typeをindividualにしたい – Node

これでできた

“`js

stripe.accounts.update(
‘acct_1GP38OKO0yOOiwW9’,
{legal_entity: {type: ‘individual’}},
function(err, account) {
console.log(“アカウント編集”);
console.log(err);
console.log(account);
}
);
“`

元記事を表示

express コマンドのcommand not found を解決するのに手間取った話

#【事象】
node.jsの expreass generatorを使って見ようと思い、
ターミナルからexpressコマンドを叩いてみたが、command not found

“`
express –version
zsh: command not found: express
“`

先日、express-generatorのインストールだけをしていたのだが、
上手くいっていなかったのかと思い、再インストールをしてから試してみてもダメだった。

#【原因&解決方法】
パスが通ってなかった。
node.jsをインストールしたときに、他の方の記事を見て、思考停止で色々な事をコピペしていたのがいけていなかった。
(自分がnode.jsインストールするときに何か余計な事をしたのかも。。。)

↓のコマンドでnpmのpathを確認する。

“`
npm bin -g
“`

上記で表示されたpathを“`.bash_profile“` に設定する。
(↓のXXXXX部分を表示された内容に設定)
“`export PATH=XXXXX:${PATH}
“`

元記事を表示

JavaScript Multi-dimensional Array;

JavaScript (Node.js) で AtCoderの問題を解いていて困ったが、現時点で日本語の情報がなかったので後学者のためのメモ。
そもそもJavaScriptでAtCoderやってる人自体少ないので需要はあまりなさそうですが、興味ある人だけ読んでください。

例えば `a = [[0, 0], [0, 0]]` というArrayを作って、`a[0][0] = 1`とupdateしたいとする。

まずは失敗例

“`javascript
var a = new Array(2).fill(new Array(2).fill(0));

a[0][0] = 1;
console.log(a);
// [ [ 1, 0 ], [ 1, 0 ] ]
// a[0], a[1] は呼び出すメモリ上でidが”完全に同じ”なので、a[0][0]とa[1][0]も単に”値が等しいのではなく全く同じもの”になる。
“`

これは Python3でいうところの

“`python3
a = [[0] * 2] * 2
“`
と同じ。
これを解決するには、
a[0], a[1]をそれぞ

元記事を表示

【Node.js】ログにリクエストIDを記録する

# 概要
各APIリクエストに対して一意なIDを付与しログに記録しておくと、なにかと便利です。

– リクエストID付与なし

“`
[2020-01-01T00:00:00.000] DEBUG system – start // APIリクエスト1
[2020-01-01T00:00:00.000] DEBUG system – start // APIリクエスト2
[2020-01-01T00:00:00.000] DEBUG system – start // APIリクエスト3
[2020-01-01T00:00:00.005] DEBUG system – continue
[2020-01-01T00:00:00.005] DEBUG system – continue
[2020-01-01T00:00:00.010] DEBUG system – continue
[2020-01-01T00:00:00.010] DEBUG system – finish
[2020-01-01T00:00:00.015] DEBUG system – finish
[2020-

元記事を表示

OTHERカテゴリの最新記事