- 1. Expressの一部であるミドルウェアのご紹介
- 2. Raspberry Pi Python on pyenv + NodeJS + VNC using noVNC
- 3. setup nuxt (TypeScript)
- 4. node-fetch use on unzipper
- 5. 【初学者おすすめ!】Docker / Nuxt.js / Expressを使ってタスク管理アプリを作ろう!
- 6. 最短2週間で著名OSSのメンテナになる方法
- 7. WEBアプリのビルド情報・変更履歴を手っ取り早く確認したい(git+node.js+angular)
- 8. ES6メソッドの復習 map(), filter(), findIndex(), test()
- 9. [環境構築]Node.js+TypeScript
- 10. JavaScriptで役立つasync/awaitテンプレ(WebDevTips#2)
- 11. nodenvのパスが通らなかった
- 12. フロントエンドエンジニアのNode.js基礎学習〜
- 13. Web3.jsを使ってみる
- 14. node.js で DynamoDB に await put(or putitem)する時の正しい方法は?
- 15. JavaScriptで役立つPromiseテンプレ(WebDevTips#1)
- 16. [子育てIoT][環境構築]Raspberry PIでNode.jsなど
- 17. Node.js 関連記事まとめ
- 18. Elastic BeanstalkにTypescript+Expressのアプリをデプロイ
- 19. kintone プラグイン開発メモ 丸ごとファイルコピー
- 20. kintone プラグイン開発メモ バージョンの書換え
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に関係する私の記事をまとめました。
新し記事を更新次第、随時こちらに追加をしていきます
Elastic BeanstalkにTypescript+Expressのアプリをデプロイ
AWS Elastic Beanstalk(以下EB)を使ってNode.jsアプリをデプロイしようとしてつまづいたので、備忘録として残しておく。
# アプリケーションの概要
* Typescript+Expressで書かれたNode.jsアプリケーション。
* ローカルでは`ts-node`を使って起動している。# デプロイしようとして失敗
[EBのドキュメント](https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/create_deploy_nodejs.container.html)には
> Procfile を指定しない場合、package.json ファイルを指定すると Elastic Beanstalk は npm start を実行します。これを指定しない場合、Elastic Beanstalk は app.js または server.js をこの順序で探し、実行します。
と記載されていたので、特に何もしなくても`npm start`が実行されて、`ts-node`でサーバが起動すると思って
kintone プラグイン開発メモ 丸ごとファイルコピー
kintone プラグインの開発で、一つのプラグイン毎に製品版、試用版等全部で4つを作成している。
試用版は、製品版とほとんど同じで manifest.json など一部異なっているので、manifest.json を除き製品版ソースを試用版ディレクトリに丸ごとコピーして、プラグインにパッケージする。
node の fs-extra を使って、処理を作成したので、メモしておきます。# 概要
manifest.json 以外のソースファイルを製品版から試用版にコピーするしくみを作成
– 製品版、試用版等で、少しづつ構成が異なり、manifest.json が4つある
– manifest.json 以外の製品版ソースファイルは、試用版にすべて必要
– 試用版にのみにあるソースファイルがある
– ファイル削除は、行わない
– 不要ファイルが生じたときは、マニュアル作業# fs-extra とは
– [fs-extra](https://www.npmjs.com/package/fs-extra)
– node.js において、標準で利用できるァイル操作のライブラリ
kintone プラグイン開発メモ バージョンの書換え
kintone プラグインの開発で、一つのプラグイン毎に製品版、試用版等全部で4つを作成している。
バージョンを管理している manifest.json も4つあり、バージョンアップの際にまとめて書き換える処理を作ったのでメモしてきます。# 概要
プラグインファイルで、バージョンに関係しているものが下記で、バージョンアップ時にいちいち変更が必要。たまに忘れたり、間違えたりもする。
面倒なので、shelljs の sed を使って、書き換える。– 製品版、試用版等で、少しづつ構成が異なり、manifest.json が4つある
– package.json で、プラグインをパッケージする kintone-plugin-packer の出力先のプラグインファイル名にバージョンを付与している。# sed とは
unix コマンドで、テキストファイルの文字列を正規表現で書き換える定番のツール。
node で使える sed を調べたら、[shelljs](https://github.com/shelljs/shelljs/blob/master/README.md) があったの