- 0.1. MacにHomebrew経由でnodenvを導入する(+PHPStorm対策)
- 0.2. 2020年から始めるAzure Cosmos DB – JavaScript SDK (SQL API)を見てみる (Part.2)
- 0.3. 【Node】dotenvで環境変数を設定する
- 0.4. 初心者がElectron(NW.js)を始めてみて分かったことまとめ
- 0.5. Node.js: printf風の文字列フォーマットをする方法
- 0.6. cheerio-httpcli – Node.js用WEBスクレイピングモジュールについて
- 0.7. lockファイルがコンフリクトしたときの対処法
- 0.8. async/await スリープ関数
- 0.9. Windowsのnode.jsでCannot find module が出た場合の対処
- 0.10. GlitchでPuppeteerを使う際の注意(–no-sandbox)
- 0.11. ScaffoldHubってすごいのでは?
- 0.12. Progate無料版をやってみる【Node.js】
- 0.13. TypeORMのconnection設定はormconfig.jsに書くのがおすすめ
- 0.14. 『Node.js 超入門』の express-validation を最新の仕様に修正する
- 0.15. WebSocket の負荷テストは Artillery でシュッと簡単に実行しよう
- 0.16. arduino + leapmotion でmidi ドラム Play!
- 1. leapmotionとarduinoでシリアル通信
MacにHomebrew経由でnodenvを導入する(+PHPStorm対策)
以前`ndenv`を使っていたのですが、気づいたら`deprecated`になっていたので転職時に新しい端末になったのを機に`nodenv`へ移行しました。`anyenv`使って入れるのがステップ数多くてだるいなと思っていたのですが、`homebrew`であれば割とサクッと入れられそうだったので今回はこちらで導入してみるので、備忘録として残しておきます。
https://github.com/nodenv/nodenv
# Homebrewの導入
導入済み前提で進めるので、導入方法については割愛します。
# 既存のNode.jsまたはNode.jsバージョン管理の削除
各々の環境で異なっている所だと思うので適時環境にあった方法にて対応ください。Macなら大体当該ディレクトリを消せば済むと思います。
# nodenvのインストール
“`terminal
brew install nodenv
“`まぁまぁ時間がかかると思うので、のんびり待ちます。
# 初期化コマンドをシェルプロファイルに追記
`eval “$(nodenv init -)”`を追記します。最近
2020年から始めるAzure Cosmos DB – JavaScript SDK (SQL API)を見てみる (Part.2)
![th.jpeg](https://www.bing.com/th?id=OIP.yovZnkelJ4W3sSoRk-oQtwHaD4&pid=Api&rs=1)
# この記事について
本記事は、2020年3月6日 (米国時間) にて、Azure Cosmos DB に新しく Free Tier (無償利用枠) が登場したことに伴い、改めて Azure Cosmos DB を色々と触っていく試みの 4 回目です。
今回も、[前回記事][PrevLink1] 同様、 **Microsoft Azure Cosmos JavaScript SDK** について見ていきたいと思います。– [2020年から始めるAzure Cosmos DB – JavaScript SDK (SQL API)を見てみる (Part.1)][PrevLink1]
# 対象読者
– Azure Cosmos DB について学習したい方
– Node.js で Azure Cosmos DB への CRUD 操作を行いたい方
– Microsoft Azure Cosmos JavaScript
【Node】dotenvで環境変数を設定する
## 概要
– Nodeでプログラムを実行する時に環境(dev/stag/prodなど)ごとに値が異なる部分はコードを修正せずに実行するため環境変数として埋め込むことがよくあると思います
– セットする環境変数が1つ2つであればコマンド実行時に設定すればよいですが規模が大きくなってきたらファイルでまとめて定義したくなるでしょう
– そんな時は[dotenv](https://github.com/motdotla/dotenv)を使うと便利です
– dotenvを使うと`.env`ファイルに定義された値を環境変数として使うことができます
– また、システムの環境変数として値が設定されていればそちらを優先して使うということもできます
– なので、開発時はローカルで`.env`を配置し、本番ではホスティングサービスの機能で環境変数として設定するといった使い方をすることでリポジトリ内のファイルを変更せずに実行することができます## Nodeスクリプトの実行時にdotenvを使う場合
– シンプルな形でいうと`index.js`があって`node index.j
初心者がElectron(NW.js)を始めてみて分かったことまとめ
#目次
1. [はじめに](#a1)
2. [個人的にHTA(WSH?)とNW.jsはオススメしません](#a2)
3. [electron開発の流れ](#a3)
1. [プロジェクトフォルダ(名前は何でもOK:ここではmoge)の準備](#a31)
2. [中身を編集する](#a32)
3. [moge/package.jsonを編集する](#a33)
4. [electronとelectron-builderのインストール](#a34)
5. [ビルド](#a35)
4. [electron-builderでビルドしようとすると`このシステムではスクリプトの実行が無効になっているため、~~~`というエラーが出るとき](#a4)
5. [1つのプロジェクトを再ビルドしたいとき](#a5)
6. [おわりに](#a6)突然ですが、絵を描く用の画像資料が10GBを超えてしまいました
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を作成し、該当するものを整形して表示するという仕組みになっています。