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

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

Swaggerファイルを自動生成する

# はじめに
**Swagger形式のOASを自動生成してくれる**パッケージは無いか探していたところ、、、
[TSOA](https://www.npmjs.com/package/tsoa)という良さげなやつを見つけたので試してみました!

本記事で紹介する技術は以下になります。

– TSOA
– Node.js
– TypeScript
– express
– swagger

**作業環境**

“`
OS: Windows 10 Pro
Node: 12.1.0
npm: 6.9.0
“`

## 準備
Node+TypeScriptの環境を構築します。

“`
PS C:\Users\user\Desktop\> mkdir project; cd project;
PS C:\Users\user\Desktop\project> npm init -y
PS C:\Users\user\Desktop\project> npm install -D typescript @types/node ts-node
PS C:\Users\user\Deskto

元記事を表示

AzureのAppServiceを使ってobnizを動かしてみました!)

cookieを使ってみる

###cookieとは
cookieとはWEBサイトにおいて、IDやパスワードなどの会員情報や、IPアドレスを保存してくれる**ブラウザ**の機能です。
cookieがあるお陰で、いちいちログインし直す手間が省けたりします。

参考:[WEB担当者Forum](https://webtan.impress.co.jp/g/cookie)
###cookieの仕組み
cookieはHTTPが用いられます。クライアントがWEBサーバーにHTTPリクエストを送った(ブラウザがWEBサイトにアクセスした)際に、WEBサーバーから、ページの情報と一緒にcookie情報が(HTTPレスポンスで)送られてきます。ブラウザはこのcookie情報を保存してくれます。
再び同じWEBサイトにアクセスした際に、ブラウザはこのcookie情報を確認します。
そしてそのcookie情報をWEBサイト(WEBサーバー)に送信(リクエスト)し、WEBサーバーからそのcookie情報に基づいたWEBサイトが表示されるというわけです。

参考:[WEB担当者Forum](https://webtan.impress.c

元記事を表示

Node(Express)でJWT

# はじめに
ユーザー認証を実装したい。
スマホアプリ向けのAPI作っているときにユーザー認証が必要となり、JWTが良さそうだったので採用した。

以下、注意点

* 本記事の目的はあくまでJWTの導入なので、脆弱性については触れていない。
* 入門者にわかりやすくするため、有識者には誤解される表現を使っている可能性がある。

## JWTとは
「Json Web Token」の略で、URLに埋め込めるJSON文字列のこと。
電子署名によってJSONが改ざんされていないかをチェックできるため、ユーザー認証などに使うことができる。
~~筆者は詳しく理解してないので、JWT使えばログイン機能作れる!、みたいに思っている。~~

## JWTのしくみ
1. クライアントは、認証情報(ユーザーIDとパスワード)をサーバに送る(いわゆるログイン処理)
2. サーバは、データベースに接続して認証情報が正しいか確認
3. サーバは、ユーザーIDと有効期限といった情報を持つJSONを秘密鍵で暗号化し、JWTの形でクライアントに返す
4. 以降、クライアントは、渡されたJWTを使ってサーバと通信する(い

元記事を表示

[awscli] nodejs8.10を使用しているlambdaを洗い出すワンライナー

# モチベーション

`AWS Lambda: Node.js 8.10 is EOL, please migrate your functions to a newer runtime version.` らしいので、nodejs8.10を使ってるlambda関数を洗い出したかった

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/runtime-support-policy.html
https://qiita.com/kapioz/items/1e0fb80afc7d98bbde52

# ワンライナー

`aws lambda list-functions | jq -r (‘.Functions’|.[]|'{ FunctionName: .FunctionName, Runtime: .Runtime}’) | jq -r ‘select(.Runtime == “nodejs8.10”)’`

こっちだと関数名のみ

`aws lambda list-functions | jq -r (‘.Functions’|

元記事を表示

GitHub Actions をローカル環境で実行したい(Self-hosted runners)

# Intro
2019年の GitHub Universe で GitHub Actions が正式リリースされました :tada:

GitHub Actions について詳しく知りたい方は [紹介ページ](https://github.com/features/actions) や [開発者向けドキュメント](https://help.github.com/ja/actions/automating-your-workflow-with-github-actions) をご覧ください。

ソースコードと CI/CD 機能が同じサービス内で管理できるのは実に収まりがいいです:octocat:
また Matrix Build といった強力な特徴があるため CircleCI 等の他社製サービスからの乗り換えを検討している方も多いのではないかと思います。

自分も試しに Electron のテスト(e2eを含む)と Mac 用、Windows 用のパッケージングを GitHub Actions で試したところ、(ほとんど)問題なく動作しそれぞれの OS 向けのパッケージを成果物として作

元記事を表示

急性中耳炎診断支援LINE Botを改良しHerokuにデプロイ

##概要
プログラムの勉強を始めて4か月ほどの開業医です。

以前、忙しい臨床現場でも診療ガイドラインに沿った治療を簡単に行えるようにするため、医療者向けに[急性中耳炎の重症度と推奨治療が簡単に分かるLINE Bot](https://qiita.com/doikatsuyuki/items/8ded5f3a5d4e6e2eaa4b)を作成しました。

以前のものは初診の患者さんに対して重症度判定と推奨治療の提示を行うものだったのですが、今回は再診時の推奨治療を提示する機能を追加しました。

さらに、LINE Developersのリッチメニューを使用しUIを向上させ、Herokuにデプロイしました。今回も医療者向けのBotになっています。

##実装
小児急性中耳炎診療ガイドライン(2018年 日本耳科学会)に沿った診療を支援するLINE Bot。
①初診時LINE上で質問に答えていくとスコアリングが行われ、急性中耳炎の重症度と推奨治療が提示される。
②再診時は前回行われた治療を選択すると今回の推奨治療が提示される。

##概念図
node.jsでBot開発しLINE bot AP

元記事を表示

HTML5/CSS3のみのコーダーがMEAN環境でゲームを作るまでの話(序)

#自己紹介
こんにちは!ちゃばこと、くぅじやすまさです。
このエントリは技術エントリではないのでタグはつけてないんですけどQittaって開発日記みたいなのも投稿していいんですか。プログラミングはクソ稚魚なんですけど…

Qittaに登録した理由はエントリタイトルの通りです。
自分は2006年ごろからHTMLとCSSに触れて、それからメモ帳でコードをベタ書きしながらサイトを作ってきた化石です(WordPressに触れてPHPをかじったときでさえベタ書きでした)。恩師に化石って言われたので化石です。

数年前からbracketやCodaを使いはじめて、今は身なりだけは文明人です。でもgitを使いこなせていないのでやっぱり化石かもしれません…『稚魚の化石』に改名しろ。

ともあれ。そんな化石さんには目標があります。
それは…

**MEAN環境でゲームを作ること!**


……
おいおいHTMLとCSSと本当にちょっとのPHPしかできないクソ稚魚コーダーがプログラマーになろうだなんて無謀すぎないか?

**無謀すぎるだろ。無謀だと思います。あなたは正しい。**

でもものづくりがしたい!(

元記事を表示

本当の初心者のためのNode.js超入門 ~環境構築編~

# はじめに
 今回このシリーズを書くに至った経緯として、この頃未経験から転職してプログラマーになる方とか増えている印象が強いのですが、プログラミングを教える際に色々と余計なことを教えてしまったり、逆に併せて教えるべきことが抜けていたりといったことが多いなと感じる部分があったので、「完全素人向けに教えるにはどこを教えたらいいだろう?」という自身の疑問を解決するためのまとめとして書くことにしました。
 私自身も分かっていない部分多くあるので、一つ一つ再度勉強しながら書いていこうと思います。また、私同様に独学でプログラミングを始めた方の手助けになれればという気持ちですので、この気持ちに賛同していただける方はご指摘等頂けると幸いです。(もちろん初学者の方はご質問いただいても構いませんのでお気兼ねなく!)

 少々前置きが長くなってしまいましたが、今回はNode.jsについて基礎的な内容と環境構築方法について見ていこうと思います。
 今後Pythonなども同様の内容を書いていこうと思いますので、ご興味ある方はそちらもご覧頂ければと思います。

# Webアプリケーションについて
 Node.j

元記事を表示

Raspberrypiで動体検知カメラを自作

#はじめに
自宅のセキュリティを強化したいと思ってRaspberryPiで監視カメラを自作。セキュリティサービスや高価な監視カメラを買う前にちょっと試してみたいという方向け。
具体的には、玄関前やリビング窓の不審者を検知しLINE通知させる仕組みとしている。将来的にはLINEBotにメッセージを送ると撮影させる事も考えたい。

#準備するもの
・RaspberryPi Zero WH
![Screenshot 2019-11-18 at 17.22.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/532736/09941e9f-b6c2-3ecf-6fa2-85787db919cf.png)
・カメラモジュール
![Screenshot 2019-11-18 at 17.32.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/532736/07c8ef52-bb14-caf5-006b-794c5eda4c42.p

元記事を表示

Node.jsでperformance.now()を使用した際に”ReferenceError: performance is not defined”というエラーが出る

## TL; DR
以下のいずれかの方法でperformanceオブジェクトを宣言する。

“`javascript
const performance = require(‘perf_hooks’).performance;
“`
もしくは

“`javascript

const { performance } = require(‘perf_hooks’);
“`

## 詳細

“`javascript
var t0 = performance.now();
console.log( ‘Do something’ );
var t1 = performance.now();
console.log(“Call to doSomething took ” + (t1 – t0) + ” milliseconds.”);
“`

上記のようなコードをNode.jsで実行すると`ReferenceError: performance is not defined`というエラーが出た。
Node.jsで[Performance API](https://developer.

元記事を表示

音オペレーションで革命的なUXを!

### まえふり

もう年末が近いですね。
1999年の大みそかから2000年になった時に将来の不安よりドキドキ感が強かったもんですがもうあれから20年近く時間が過ぎてしまったんですねー。
AIやらマネージドサービスやらで、がしがしプラットフォーマーが世の中をひっぱってってくれているんですが、

– 「[XXX ] [検索] (カチッ)」とかいうCMに出てくるやつ
– (ラジオで)「番組へのお便りはなんちゃらアットマークにメールください」

こういうのいい加減めんどくさいUXなんでやめたら良いと思うんです。20年前のURL一字一句手打ちとどう違うのかと。
どんなに短くなっても復活の呪文を打つのが変わらないならおんなじかと。

ITリテラシー問題とするのであれば音声認識、言語処理がリテラシーが低い人にも使い易く人気ですが
スマートスピーカーのウェイクワードって恥ずかしい。日本人が消極的なんじゃなくて普通にヘンに見える。
言霊とか人形供養とかセンシティブに魂を扱って来た遺伝子がそう思わせてるんじゃないか。(因果推論)

QRもスマホだしてアプリさがしてうごかしてQRコードにか

元記事を表示

Node.js の C++ によるアドオンで、AsyncWorker からイベントを受け取る

# はじめに

最近、必要があって Node.js の Native アドオンを作りました。
その中で、外部とのデータやり取りで AsyncWorker を使っていたのですが、
値を受け取るときに Callback を使うサンプルはたくさんあるのですが、
イベントで返すサンプルが見つからなくてハマったので、ここに作り方をメモしておきます。

# 準備

現在、Node.js の Native アドオンの作成には色々方法がありますが、
今回のサンプルプログラムは、node-addon-api (N-API の C++ラッパー) を使っています。
(というか、他のやり方は「おまじない」だらけで、何が必要なのかがよくわからなかった・・・)

アドオンは、node-gyp を使ってビルドするのですが、環境作成方法などについては、先人の方々の優良記事がたくさんありますので割愛します。
(node-gyp タグで検索すると、たくさん見つかります。)

今回のサンプルプログラム作成に当たり、
https://qiita.com/Satachito/items/fa681ba96dc8e52ca7c1

元記事を表示

第1回 – Web API と Web UI でファイルダウンロード(Web API 編)

## はじめに
今回から2回に分けてファイルをダウンロードする簡単な Web API と Web UI のサンプルを紹介します。
第1回目の今回は [Node.js](https://nodejs.org/en/) + [Express.js](http://expressjs.com/) での Web API です。
第2回目は [Vue.js](https://jp.vuejs.org/index.html) + [Vuetify](https://vuetifyjs.com/ja/) で簡単な Web UI を作り、今回の Web API を叩いて実際にファイルをダウンロードします。

1. Web API 編(←イマココ)
1. Web UI 編

## 環境
OS: macOS Mojave 10.14.6
Node.js: 10.16.3
Express.js: 4.17.1

## API 仕様(概略)
* GET
* URI
`/api/download`
* クエリパラメータ
`file=ファイル名`
ファイル名は `sample.png` or `sam

元記事を表示

Node+TypeScript+ExpressでAPIサーバ構築

# はじめに
Node+TypeScript+ExpressでAPIサーバを作っていきます。
本記事はTypeScript環境の構築からAPIサーバの作成までの流れを記した初心者向けな記事になります。

本記事で紹介する技術は以下になります。

– Node.js
– TypeScript
– ts-node
– express
– swagger

**作業環境**

“`
OS: Windows 10 Pro
Node: 12.1.0
npm: 6.9.0
“`

# TypeScript+Node環境の構築

## Node環境でTypeScriptを始めるには

※手元のOSにNode.jsがインストールされていることを前提に始めます。

まずは適当に作業ディレクトリを作成して、その中に**typescriptパッケージ**をインストールしましょう。

“`
PS C:\Users\user\Desktop> mkdir project; cd project;
PS C:\Users\user\Desktop\project> npm init -y
PS C:\U

元記事を表示

node.jsからBigQueryを使う

久しぶりに触ったらハマった(ハマる要素はありませんが)のでメモ。

## 前提

* BigQuery側でデータセットおよびテーブルが作成されている。
* 適切なサービスアカウントが作成され、認証用のjsonが(カレントに)ダウンロードされている。

## 準備

“`bash
mkdir bq-test
cd bq-test
npm init -f
npm install –save @google-cloud/bigquery
touch index.js
“`

## 実装

index.jsを実装します。下記のような感じ。

“`js:index.js
const { BigQuery } = require(‘@google-cloud/bigquery’);

const bigquery = new BigQuery({
projectId: ‘your-project-id’,
keyFilename: ‘path/to/key.json’
});

const query = “select * from test.members”;

//

元記事を表示

新しい Mac に Git と Node.js の環境を作る

# どうでも良い前置き

5 年ぶりぐらいに Mac を買い替えました。
今までの買い替えの際には移行アシスタントを使って環境をそのまんま移行していましたけれども、これまでも Mac 買い替えのたびに前の端末から移行を繰り返して来ており、もはや不要な設定やソフトも沢山ある状態でした。
と言うわけで今回は、昨日までの弱虫だった自分を脱ぎ捨てて新しいワタシに生まれ変わろうと言う趣旨で、移行アシスタントに頼らずゼロから環境を作ることにしました。
データの大部分を iCloud に置く運用にしていたので端末固有の情報に対する依存性が下がって来ているのもその決断を後押ししています。

とは言え、ローカルの開発環境はローカルに作らなければなりません。
と言うわけで、新しい Mac に開発環境を作る流れの記録です。

# この記事でやること

– `Xcoce コマンドラインツール`のインストール
– `Homebrew` のインストール
– `Git` のインストール
– `Node.js` のインストール
– `Visual Studio Code` のインストール
– その他、細々したもの

元記事を表示

初学者が、LINE Botを作るまで

###はじめに
製作者がLNE Botを作るまでの道のりを、日記代わりに付けているものです。
初学者の参考になれば、幸いです。
Qiita初投稿のため、見辛い部分はあると思われます。
下記のページを参照しながらの制作を行なっております。
 [LINEのBot開発 超入門(前編) ゼロから応答ができるまで](https://qiita.com/nkjm/items/38808bbc97d6927837cd)

<開発環境>
MacBook Air (13-inch, 2017)
OS:Mojave
バージョン:10.4.6

##Node.jsをインストール
Node.jsを使用して、Bot本体を作成します。

フォルダーの作成&移動

“`
$ cd ~
$ mkdir -p App/bot
$ cd App/bot
“`
npm initコマンドでpackage.jsonファイルを作成

“`
$ npm init
“`
すると、下記の画面が発生。
npm initコマンド を実行する前段階が整っていないため、発生している。

“`
-bash: npm: command

元記事を表示

Cloud Functions for FirebaseとFirebase Hostingを試してみる

## やること

Cloud Functions for FirebaseとFirebase Hostingを試してみようと思います。
html/cssの静的ファイルのデプロイ、jsファイルの動的ファイルのデプロイ、html/css/jsの動的サイトのデプロイ、の3パターンを試してみようと思います。

## Firebaseを使うための準備

Firebase CLIをインストールとログインをします。

“`bash
~$ npm i -g firebase-tools
“`

インストールが完了したらプロジェクトディレクトリを作成&移動してFirebaseにloginします。

“`bash
~$ mkdir firebase-sample
~$ cd firebase-sample
~$ firebase login
“`

loginしたらFirebase ConsoleでFirebaseプロジェクトを作成しておきます。今回は「myproj」という名前で作っておきましょう。
Firebaseプロジェクトを作成したらinitしていきます。

“`bash
~$ fireb

元記事を表示

Node.jsでつくるNode.js-WASMコンパイラ – もくじ

# はじめに

「RubyでつくるRuby ゼロから学びなおすプログラミング言語入門」(ラムダノート, Amazon) という本に感銘を受けて、自分でもNode.jsで小さなプログラミング言語を作ってみるシリーズをやってみました。「[ミニインタープリター](https://qiita.com/massie_g/items/3ee11c105b4458686bc1)」「[ミニコンパイラー](https://qiita.com/massie_g/items/3ba1ba5d55499ee84b0b)」ときて、三部作(?)の最後はミニNode.jsからWASMを生成する小さなコンパイラーに取り組んでいます。

# 前提環境

今回は私の環境である macOS 10.14 Mojave を前提にしています。また Node.js v10.13 で動作を確認しています。

# Node.js-WASM コンパイラー目次

– [WASM コンパイラー – 01:WASMで定数戻り値を返す](https://qiita.com/massie_g/private/3c627db366ed20b8b7

元記事を表示

OTHERカテゴリの最新記事