- 1. Node.jsで証明書チェーンの検証をおこなう
- 2. 紙で申請を出す居酒屋店員のシフト希望と管理業務をちょっとスマートにする
- 3. M5CameraやラズパイなどのMJPEGデータを中継するNode.jsサーバ
- 4. Expressの一部であるミドルウェアのご紹介
- 5. Raspberry Pi Python on pyenv + NodeJS + VNC using noVNC
- 6. setup nuxt (TypeScript)
- 7. node-fetch use on unzipper
- 8. 【初学者おすすめ!】Docker / Nuxt.js / Expressを使ってタスク管理アプリを作ろう!
- 9. 最短2週間で著名OSSのメンテナになる方法
- 10. WEBアプリのビルド情報・変更履歴を手っ取り早く確認したい(git+node.js+angular)
- 11. ES6メソッドの復習 map(), filter(), findIndex(), test()
- 12. [環境構築]Node.js+TypeScript
- 13. JavaScriptで役立つasync/awaitテンプレ(WebDevTips#2)
- 14. nodenvのパスが通らなかった
- 15. フロントエンドエンジニアのNode.js基礎学習〜
- 16. Web3.jsを使ってみる
- 17. node.js で DynamoDB に await put(or putitem)する時の正しい方法は?
- 18. JavaScriptで役立つPromiseテンプレ(WebDevTips#1)
- 19. [子育てIoT][環境構築]Raspberry PIでNode.jsなど
- 20. Node.js 関連記事まとめ
Node.jsで証明書チェーンの検証をおこなう
Node.jsで証明書チェーンの検証をおこなうソースコードを実装したので、メモとして残しておく。
調べ方がわるかったのか、実装サンプルを見つけるのに苦労したのでここにまとめておく。
見つけた実装サンプルはStack Overflowにありました。[ssl – Using node.js to verify a X509 certificate with CA cert – Stack Overflow](https://stackoverflow.com/questions/48377731/using-node-js-to-verify-a-x509-certificate-with-ca-cert)
## 証明書チェーンとは
そもそも証明書チェーンとは、ある証明書はより上位の証明書によって署名され、その上位の証明書はさらにその上位の証明書によって署名されているという証明書がチェーンのように紐付いている関係を指します。
最も上位の証明書のことをルート証明書と呼び、それ以外の証明書は中間証明書またはサーバ証明書と呼びます。イメージ図([証明書チェーンの働き – IBM
紙で申請を出す居酒屋店員のシフト希望と管理業務をちょっとスマートにする
この記事は「[Qiitaエンジニアフェスタ2021](https://qiita.com/official-events/64ff6ba4e653a822fce9)」の参加記事です。
こんにちは、某居酒屋チェーンの店員をしています。新橋店です。
> ![](https://i.gyazo.com/c6eb5bc47f4b72f985fd8231ba72a5ab.jpg)
(コロナ禍の休業要請などで中々シフトに入れていませんが、)
うちの店舗では、 **シフトの希望を出す時に店長に紙のシフト希望表を提出**しています。
この辺りに関連する **居酒屋でのシフト決め業務を少しでも改善出来ないかと思って仕組みを作ってみた**話になります。## 紙でのやり取りが多い居酒屋現場
居酒屋現場は今だに紙の業務が多いです。
> ![スクリーンショット 2021-08-25 23.36.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/35387/d1c3f3d1-e153-7ec1-08bf-5df
M5CameraやラズパイなどのMJPEGデータを中継するNode.jsサーバ
## M5Cameraに最初に書き込まれているのは使いやすいけど…
複数からのアクセスでstreamが見れない!
M5Cameraのコード変えてもいいけど…中継するサーバー作って、複数のM5Cameraの映像を管理するのもありかなぁと思い作りました。
## 環境
* Node.js v14.15.0
* ライブラリ
* [mjpeg-server](https://github.com/gluxon/node-mjpeg-server) 0.3.1
* [mjpeg2jpegs](https://www.npmjs.com/package/mjpeg2jpegs) 1.0.6## M5Cameraに書き込むコード
https://github.com/tkyko13/M5CameraMDNS
自分が作ったMDNSに対応させたM5Camera用のプラグラムです
最初にあったコードに追記する形なのでできることは変わりません
## Node.js側のソースコード
“`js
const express = require(‘express’);
cons
Expressの一部であるミドルウェアのご紹介
#はじめに
Node.jsのフレームワークである`Express`の機能であるミドルウェアについて`res, req, next`などの理解が少し足りていないのでアウトプットしたい気持ちが湧いてきたので今回は備忘録として執筆しました。### 対象者
– Expressをさわったことがある方。
– これからExpressについて学習しようと思っている方。## まず軽くExpressとは?
![express-facebook-share.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924294/d2c30f50-ab28-a89e-4f78-5465ff898679.png)冒頭でもふれたように2010年の11月にリリースされたNode.jsのWebフレームワークです。
主な特徴としては、http通信(メソッド)を利用するルーティング機能、`View`(画面)を手がけるテンプレートエンジンの使用そして今回紹介する**ミドルウェア**の機能などがあります。
## そしてミドルウェア
Raspberry Pi Python on pyenv + NodeJS + VNC using noVNC
#経緯
以前から音楽再生用としてアンプの上に置き、LANのどこからでもアクセスして音楽を流すことが出来たRaspberry Piのメモリが壊れたので、再構築。
ぱっと見Web上でRaspberry Piのデスクトップが操作できる感じになります。ネット上に無数にPython環境やNodeJS環境をインスコする情報は転がっているが、なかなか最新のものが出てこないので備忘として。
2021年7月中旬~8月中旬くらいの『最新』情報です。#用意するもの
– Raspberry Pi 4B 一式
– LANケーブル
– 64Bit版Raspberry Pi OSイメージ 今回は21年5月公開のもの#サーバー構築
####1.microSDにRaspberryPiOSを焼き上げる。
今回はノーマル版だがLiteでやっても結果は同じ
“`sudo raspi-config“`
ホストネームでアクセスしたいので、ホストネームを「radiberrypi」にする。ラジオ再生用、というダジャレ。
SSH有効化。####2.Pythonたくさん使いそうだからPyenv入れる。
“`su
setup nuxt (TypeScript)
“`
$ npm init nuxt-app myprojectcreate-nuxt-app v3.7.1
✨ Generating Nuxt.js project in myproject
? Project name: myproject
? Programming language: TypeScript
? Package manager: Npm
? UI framework: Vuetify.js
? Nuxt.js modules: Axios – Promise based HTTP client, Progressive Web App (PWA), Content – Git-based headless CMS
? Linting tools: ESLint, Lint staged files, StyleLint
? Testing framework: Jest
? Rendering mode: Universal (SSR / SSG)
? Deployment target: Server (Node.js hosting)
? Develo
node-fetch use on unzipper
# Unzipperでrequestを使うかnode-fetchを使うかという問題
## 経緯
unzipperのopenメソッドを使う場合にrequestを要求される課題がある。
requestに限っているわけではないものの、node-fetchを入れることはできない。
node-fetchを入れても稼働するPRを送って今後改良を追っていくほど余裕はないので
既存のunzipper提供機能の範疇でなんとか使う方法を考えた## 課題
次の3つの課題があった。
ECONNRESETがそこそこ頻発する
requestがdeprecatedになって2年が経過している。
制作物の都合上、requestを用いる限りネストが解消されない部分がある# やりたいこと
### zipをダウンロードして展開する
deprecateになってしまっているrequestを利用せず、documentにnode-fetchを用いる方法が記載されていないが、bufferを用いる方法は記載されていたため、
bufferを用いたnode-fetchでの代用を試みた。requestを用いる
【初学者おすすめ!】Docker / Nuxt.js / Expressを使ってタスク管理アプリを作ろう!
## はじめに
今回はDockerとNuxt.jsとExpressを使ってタスク管理アプリを作成していきます。
こんな感じのアプリケーションになります。![スクリーンショット 2021-08-22 20.47.11 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/473bc5bd-f160-fba0-1bf2-169fea2b8301.png)
### 対象読者
・ Dockerを使ったことがない方
・ Nuxt.jsとExpressで何か作ってみたい方
・ Node.jsのORMライブラリである`Sequelize`を使ってみたい方## 完成コード
https://github.com/ssk9597/Nuxt.js-Express-Task
## それでは一緒に作っていきましょう!
### Githubからクローン
Dockerから解説となると長くなるので省略します。https://github.com/ssk9597/Docker-Nuxtjs-Expres
最短2週間で著名OSSのメンテナになる方法
意味がよくわからないタイトルですね。私もよく分かりません。
ある意味ではこの記事の続きです:[貢献チャンスの探し方](https://qiita.com/umireon/items/cbf27deea6ff96d79c1d)
## TL;DR
anyone who completes a PR with a test becomes a maintainer.
— Zoltan Kochan (@ZoltanKochan) August 19, 2021
## pnpm
WEBアプリのビルド情報・変更履歴を手っ取り早く確認したい(git+node.js+angular)
はじめに
—
WEBサイトの開発で、修正が実行環境に取り込まれているか不安になることが多いので、確認するためのAPIを作ってみました。
git+angular+node.js の構成を前提としています。node.jsサーバからgit logコマンドを打って、結果を返すようにしています。
gitコマンド
—
node.js の Child process を使用して git log を取得します。
[Child process](https://nodejs.org/api/child_process.html)gitコマンドは、今回は以下のオプションで実行しています。
`git log –no-merges –pretty=format:”[%ad] %h %an : %s” –date=format:”%Y/%m/%d %H:%M:%S”`–no-merges
マージしたときのコミットを除いて表示する–pretty=format:”[%ad] %h %an : %s”:
表示する情報を指定できる。%ad:作成日
%h:省略されたコミット
ES6メソッドの復習 map(), filter(), findIndex(), test()
# ES6の配列メソッド
* 使わなくても別の構文で書ける
* シンプルに書ける
* 実行速度が早いわけではない## map()
* 配列をイテレートする
* 要素1つずつ処理する
* 新しい配列を生成する“`javascript
const array = [1, 2, 4, 8];
const resultArray = array.map(x => x * 2)
console.log(resultArray)
// output: Array [2, 4, 8, 16]const object = {
“hoge”: {text: “fuga”},
“foo”: {text: “bar” },
“fiz”: {text: “buzz”}
};const objectToArray = Object.keys(object).map(key => {
const value = object[key]
value[‘id’] = key
return value
});console.log(object
[環境構築]Node.js+TypeScript
## 背景
毎度毎度、セットアップの度に調べているので、自分用のメモです。私自身はReact Nativeの開発が主ですが、簡単にjsやtsの動作確認したいときに、Playground的に利用します。
## 前提
* Mac
homebrewを使う場所があるのと動作確認をMacでやっただけで、Windowsでもほぼ変わらないと思います。
* Node.jsがセットアップされている
* yarnがインストールされている
もちろん、npmでも代用可
* gitがインストールされていること
Macだとデフォルトでインストールされてます(Apple Git-xxxという謎バージョン)## プロジェクトセットアップ
“`
// フォルダ作成
mkdir node-and-ts
// カレントの移動
cd node-and-ts
// パッケージの初期化(package.jsonが作成される)
yarn init -y
“`## gitセットアップ
git自体の説明はここでは省略します。
初期化と除外ファイルの設定を行います。### 初期化
“`
JavaScriptで役立つasync/awaitテンプレ(WebDevTips#2)
こんにちは,ココア(@cocoa_folio)です.
これまでは主にpythonに触れてきましたが,最近Javascriptを勉強し始めたので,Webエンジニアを目指す方々へのtipsとして記事を書いていきたいと思います.前回の記事はこちら▼
https://qiita.com/cocoa_folio/items/b8d9b435041233637cfa
前回に引き続き,今回はasync/awaitについて説明していきます!
#async/awaitとは
Promiseと一緒に用いられることの多い__async/await__
asyncとawaitって一体なんでしょう?
Googleで「async await」と調べてみると…#####asyncとは
>非同期関数 — AsyncFunction オブジェクトである関数を定義します。非同期関数はイベントループを介して他のコードとは別に実行され、結果として暗黙の Promise を返します。ただし、非同期関数を使用したコードの構文および構造は、通常の同期関数と似たものになります。#####awaitとは
>asy
nodenvのパスが通らなかった
# 問題
nodenvのパスが通らなかった。
インストールの方法はnodenvのリポジトリのREADMEに従った。試したことは
– nodebrewの削除
– bash_profileへのパスを記載“`
export PATH=”$HOME/.nodenv/bin:$PATH”
eval “$(nodenv init -)”
“`# 解決
https://github.com/nodenv/nodenv#understanding-shimsドキュメントにあったパス指定にしたところパスが通った。
“`
export PATH=”$HOME/.nodenv/shims:/usr/local/bin:/usr/bin:/bin:$PATH”
$ eval “$(nodenv init -)”
“`どうやらShimsというものが関係しているようだった。
> シムは、コマンドをnodenvに渡すだけの軽量の実行可能ファイルです。
ちなみにパスを通した後の確認はこのようになった。
“`
$ which node
/Users/{ユーザー名}/.nodenv
フロントエンドエンジニアのNode.js基礎学習〜
# はじめに
近年、フロントエンドでもバックエンドの開発経験・知識が求められている時代になっているおり、フロントとして市場価値を高める上でも意識いたいっすよね。今までは`JS`を中心に`Vue`,`React`などを学んでいたのですが、今回はサーバーサイドの`JS`実行環境である`Node.js`を入り口にバックエンドを少しづつ学習していこうと思い、妥当な流れで`Node.js`を技術選定しました。(phpとかrubyでもありかなと思いました。。)
– 今回は`Node.js`とは何か?
– `Node.js`でデファクトスタンダードの`Express`とは?以上を初学者向けにアウトプット&備忘録として執筆しました。
ちなみに今年`2021年`の[stackoverflow survey 2021](https://insights.stackoverflow.com/survey/2021#technology)で人気のある言語技術で`Node.js`は第6位でした。
思ったより上位したね#Node.jsとは
#はじめに
EthereumのDapp開発をしているとよくweb3.jsに遭遇します。
今回はweb3.jsのインストールからよく使うメソッドの実行方法までを備忘録として残しておこうと思います。#環境構築
まずNode.jsとnpmをインストールし、その後npmを使用しweb3をインストールします。“`bash
$ apt list –upgradable && apt install -y nodejs npm
$ npm init -f && npm install web3
“`
無事インストール出来たか確認してみます。“`bash
$ node –version
> v10.19.0
$ npm –version
> 6.14.4
“`
バージョン情報が返ってきたのでインストール出来ているようです。
ubuntuだとnpmが入らない場合があるようですが、僕の環境ではこれで大丈夫でした。#jsファイルを作成する。
それでは早速jsファイルを作成し実行してみます。(ここではtest_web3.jsを作成)
予めgethを起動しHTTP-RPCを有
node.js で DynamoDB に await put(or putitem)する時の正しい方法は?
# node.js でDynamoDBにawait putしエラーを捉える
検索して出てくるのがだいたい以下のコードでawaitした時のエラーの捉えかたの常套手段がわからなかったので書き留めておきます
“` javascript
dynamodb.put(param, (err, data) => {
if(err) {
// エラー処理
}
})
“`# パターン1、異常動作例
putが2回実行されてしまう駄目な例です
callbackを呼んでかつpromise()を呼んだ実行をawaitで待ちます、エラーを取る事ができて一見正常動作に見えます。
しかしCALLBACKが2回呼ばれてしまうため正常動作とは言い難いです、結果的にはそれでも良い場合は多いかもしれませんが2倍処理が実行されると考えると正常動作とは言えないでしょう。“` javascript
var aws = require(‘aws-sdk’);
//var dynamodb = new aws.DynamoDB({region:
JavaScriptで役立つPromiseテンプレ(WebDevTips#1)
こんにちは,ココア(@cocoa_folio)です.
これまでは主にpythonに触れてきましたが,最近Javascriptを勉強し始めたので,Webエンジニアを目指す方々へのtipsとして記事を書いていきたいと思います.# Promiseとは
Promiseとは,一体なんでしょう?
Googleで「javascript promise」と検索してみると…##### Promise
>Promise オブジェクトは非同期処理の最終的な完了処理 (もしくは失敗) およびその結果の値を表現します。という説明が出てきます.
「非同期処理ってなんだ?」と思った方,こちらもGoogleで「非同期処理とは」と検索すると…
##### 非同期処理
>非同期処理とは、一つのタスクを実行中であっても他のタスクを実行できる実行方式をいいます。 非同期処理をうまく実装することで、ユーザーはアプリケーションの処理待ちを気にすることなくアクセスすることができるため、ユーザビリティを考えるうえで重要な要素になります。こ
[子育てIoT][環境構築]Raspberry PIでNode.jsなど
## 背景
私事ですが、そろそろ第一子が生まれます。
そんな子供に私ができることはと考えたときに思いついたのが、
IoTです。子供の成長の記録を撮ったり、健康状態を確認したり、子供のおもちゃを作ったりなど。
まだ、何も作ってませんが何かできるのではと思ったのです。本記事はタンスに封印していた、「Raspberry Pi 3 Model B」のホコリを払って、Node.jsをセットアップするまでの手順書(ただのメモになります)。
vim,zshは私のメインPCのMacと同じ構成にしたかったのでインストールしただけです。
まったくもって必須ではありません。ちなみに、Raspberry Piの開発は一般的にはPythonの方が参考文献も多いと思いますので、
参考までに御覧ください。間違ってたらぜひご一報ください。
## OSセットアップからSSH接続までの作業
他に沢山わかりやすいサイトがありますので、ぜひそちらを御覧ください。## vim
* インストール“`
apt-get install vim
“`
* vimの設定
とりあえず jj –
Node.js 関連記事まとめ
Node.jsに関係する私の記事をまとめました。
新し記事を更新次第、随時こちらに追加をしていきます