- 0.1. S3とファイルを共通に扱う
- 0.2. 【Node.js】ウェブ上の地図にPLATEAUの建物を反映させてみた
- 0.3. AWSのAppRunner使ってRedash用のBotを動かしてみる
- 0.4. Node.js(Express)+MySQLを使ったHeroku上で動くプログラムを作ってみる
- 0.5. ローカルWebサーバーを立てる方法
- 0.6. AWS Lambdaのマネジメントコンソールでjsを複数ファイルとして使う
- 0.7. explorer.fileNestingへの誘い~エクスプローラーを見やすくしよう!~
- 0.8. 【備忘録】axiosのResponseに型を付与する。
- 0.9. 1分でREST APIのモックサーバーを作る
- 0.10. nodenv installが使えない時の対処法
- 0.11. Node.jsのバージョン切り替え(nodebrew)
- 1. Node.js管理ツール
- 1.12. Nodejsでマイナンバーカードを使ったログインと認証をやってみる(PKCS11js,X509,OpenSC,crypto)
- 1.13. 雀魂の画面から画像認識で対戦情報を持ってくる(Vol. 1)
- 1.14. VS Codeでnpm script をタスク登録しておくと便利だよ (ターミナルから実行している人へ送るTips)
- 1.15. githubのスター数の一覧を取得するスクリプト
- 1.16. Node.jsの基本操作
- 1.17. 私のNodeJS+TypeScriptプロジェクト初期設定手順
- 1.18. 実験的なJavascriptの仕様であるECMAScript throw expressionsを利用してみた ESLintの設定も
- 1.19. nodemailerとGmailと2段階認証
- 1.20. Twitter Api 登録から使用まで node.js win10
S3とファイルを共通に扱う
タイトルにある通り、S3を扱うNode.jsライブラリです。
すぐ忘れるので、備忘録として残しておきました。
おそらくもっと良いやり方があるかもしれず、いろんなケースに対応できているわけではないように思いますが、各所でカスタマイズするためのベースにはなるかなあと思います。ファイルとS3どちらも共通に扱えるようにしています。
また、AWS S3の代わりにMinioでも利用できます。“`js:storage.js
‘use strict’;const fs = require(‘fs’).promises;
var AWS = require(‘aws-sdk’);
AWS.config.update({
// region: “ap-northeast-1”,
// minio用
region: “[Minioのリージョン名]”,
});
var s3 = new AWS.S3({
// minio用
accessKeyId: ‘[MinioのアクセスキーID]’ ,
secretAccessKey: ‘[Minioのシークレットアクセスキー]’,
【Node.js】ウェブ上の地図にPLATEAUの建物を反映させてみた
国土交通省の3D都市モデルPLATEAUを使ったウェブアプリケーションを作るため、JavascriptのライブラリCesiumJSを使ってみました。
## 環境
– Node.js
– 使用エディタ: VSCode
– 動作確認OS : Windows10## PLATEAU
広島県呉市のデータを例にします。
ここからダウンロード
https://www.geospatial.jp/ckan/dataset/plateau-34202-kure-shi-2020この中から 3D Tiles, GeoJson, MVT, Shape
> 詳細 > ダウロード
[![Image from Gyazo](https://i.gyazo.com/a41a29c5ebd49fa57417edbebc441024.png)](https://gyazo.com/a41a29c5ebd49fa57417edbebc441024)ダウンロードデータを解凍すると
[![Image from Gyazo](https://i.gyazo.com/f02fd7eaf3e6ce7b9
AWSのAppRunner使ってRedash用のBotを動かしてみる
## RedashをAWSで立てる
https://dev.classmethod.jp/articles/try-redash-setup/こちらを参考にRedashのインスタンスを立ち上げてみました。Redashの公式サイト( https://redash.io/help/open-source/setup )によればインスタンスのサイズは `t2.small` で十分とありますが、自分がテストした結果では動作しないので `t2.medium` 以上をオススメします。
かつ、立ち上げたあとはACMで証明書取って、ELBの配下に当該RedashのEC2サーバを配置します。
ELBの443側のアクセス時にSSL証明書を当てる必要がありますが、先程のACMの証明書を当てます。
よくよく考えたら自分で以前書いた手順があったのでこちらも御覧ください。
https://qiita.com/hardreggaecafe/items/fe03bd74313e159a7f95これで出来上がったRedashをSlackと連動させる方法について、以下に紹介します。
## Redashbotとは
Node.js(Express)+MySQLを使ったHeroku上で動くプログラムを作ってみる
Node.js(Express)とMySQLを使ってDBと連携するアプリをHeroku上で動かします。
HerokuはPostgresが公式サポートのようですが、MySQLの方が触ったことがあったり職場で使ってたりシェアも大きいしってことでそっちをチョイスしました。# やってみた感想
特にクセもなく実装できるかなーと思いました。
MySQLも全然普通に使えるしHeroku便利だわ。##### 環境
Win10+VSC@1.68
Node.js@16.14.2+Express@4.18.1
MySQL@8.0(ローカル側DB)
ClearDB MySQL(Heroku側DB)事前準備としてHello worldだけを出力するアプリをHeroku上にデプロイしてローカル-GitHub-Herokuが繋がった環境を先に構築してあります。
https://qiita.com/shichisan21/items/b163e33669763ca6fffc
## やろうとしたこと
– Herokuサービス上でNode.js(Express)アプリケーションを動かす
– JSONデータ
ローカルWebサーバーを立てる方法
## Node.js
Node.js がインストールされている場合には`npx serve`を実行してローカルのWebサーバを立てられます。“`:ターミナル
$ npx serve
┌────────────────────────────────────────────────┐
│ │
│ Serving! │
│ │
│ – Local: http://localhost:3000 │
│ – On Your Network: http://172.22.0.2:3000 │
│ │
└────────────────────────
AWS Lambdaのマネジメントコンソールでjsを複数ファイルとして使う
– index.js だけでなく、別のjsファイルに書き、そのjsファイルをどう使うか確かめた時の情報です
## jsファイルの配置等の画面キャプチャ
– ものすごく手軽だった。zip圧縮でのソースコードアップと似てる
– 左のツリー## index.js
“`jsvar myfunc = require(‘./myfunc.js’);
exports.handler = async (event) => {
console.log(`EVENT: ${JSON.stringify(event)}`);myfunc.dummy21();
myfunc.foo();const response = {
statusCode: 200,
body: JSON.strin
explorer.fileNestingへの誘い~エクスプローラーを見やすくしよう!~
# Abstract
VScodeのエクスプローラーは、アイコンテーマの拡張機能をインストールするなどによって、大変みやすくなります。しかしNode.jsなどで開発を行なっていると、設定ファイルが大量にトップディレクトリに存在することで、目的の設定ファイルが探しにくいということがあると思います。そこで本記事では、そのような悩みを解決し得る機能、 Explorer file nesting を解説しようと思います。
本記事ではまず Explorer file nesting が何をするものなのかについて紹介したのち、核となる`explorer.fileNesting.patterns`について基本から特殊変数の一覧と意味を紹介します。
この機能使いこなせば、エクスプローラーの表示が更に見やすくなり、QOLが向上するに違いありません。
本記事を読み終えると、例えば以下のようなエクスプローラーにすることができ、package.jsonに主な設定ファイルを集約するようなことができます。
![image.png](https://qiita-image-store.s3.ap-northeas
【備忘録】axiosのResponseに型を付与する。
対象のレスポンス
“`
~/develop/node $ curl https://jsonplaceholder.typicode.com/todos/1
{
“userId”: 1,
“id”: 1,
“title”: “delectus aut autem”,
“completed”: false
}%
“`
→jsonplaceholderの取得結果に型をつけていきます。“`typescript:app.ts
import axios from “axios”// 型定義を実施
type User ={
userId:number
id:number
title:string
completed:boolean
}// main処理の関数
const main = async ()=>{
const user = await axios.get(“https://jsonplaceholder.typicode.com/todos/1”)
console.log(‘user
1分でREST APIのモックサーバーを作る
[json-server](https://github.com/typicode/json-server) を使ってAPIのモックを作る手順を備忘録として残す。
# 手順
1. `package.json` の作成
1. json-server のインストール
1. jsonの追加
1. サーバ起動# 1. `package.json` の作成
Node.jsインストール済みの環境で、プロジェクトとなるディレクトリ(ここでは`api-mock`)を作成し、そのディレクトリへ移動したら、`$ npm init`コマンドを実行。`package.json`が生成される。
※今回はyarnではなくnpmを用いている
“`:package.json
{
“name”: “api-mock”,
“version”: “1.0.0”,
“description”: “”,
“main”: “index.js”,
“scripts”: {
“test”: “echo \”Error: no test specified\” && exit 1″
nodenv installが使えない時の対処法
# 前提
今回この現象は,`macOS`でHomebrewを使用してインストールではなく`Oracle Linux 8`で[Github](https://github.com/nodenv/nodenv)からインストールした際に遭遇した場面です.また,Nodenvのインストール手順は先ほど記載したNodenvのGithubに丁寧に書かれているのでそちらを参考にしてください.
※今回の解決方法は他のOSを用いた際にも対応可能かもしれませんが…# 場面
Terminal上で
“`Terminal
$ nodenv install
“`
を実行した際に
“`Termianl
nodenv: no such command `install’
“`
が帰ってきた際です.# 対処
Githubからインストールした場合`node-buil`が自動的にインストールされないため`nodenv install`が使用できません.そのためTerminal上で…
“`Terminal
cd .nodenv
“`
“`Terminal
mkdir plugins
“`
“`
Node.jsのバージョン切り替え(nodebrew)
Node.jsのバージョン切り替えに関するメモ
Node.js管理ツール
・nodebrew
その他の管理ツール一覧はheppokofrontendさんの記事が参考になります。
[Node.jsのバージョン管理ツールを改めて選定する【2021年】](https://qiita.com/heppokofrontend/items/5c4cc738c5239f4afe02)現在利用中のNodeのバージョンを確認する
“`
$ node -v
v16.14.0
“`ダウンロード可能なNodeのバージョンを確認する
“`
$nodebrew le-remote
v0.0.1 v0.0.2 v0.0.3 v0.0.4 v0.0.5 v0.0.6v0.1.0 v0.1.1 v0.1.2 v0.1.3 v0.1.4 v0.1.5 v0.1.6 v0.1.7
v0.1.8 v0.1.9 v0.1.10 v0.1.11 v
Nodejsでマイナンバーカードを使ったログインと認証をやってみる(PKCS11js,X509,OpenSC,crypto)
# はじめに
電子証明書には署名用と利用者証明書用の2種類があり、pkcs11jsを使えばマイナンバーカードから利用者証明書用電子証明書が取得することができます。利用者証明書は「ログインした者が、利用者本人であること」を証明し、インターネットサイトなどにログインする際のセキュリティをより強固なものにできます。
今回はコマンドライン上のみの実行ですが、マイナンバーカードを使った認証サーバーを開発することをイメージしながらコーディングしています。
# 目次
1. [PKCS11jsの読み込み](#pkcs11js)
1. [認証のチャレンジデータを生成する](#Chapter1)
1. [カード内の秘密鍵でチャレンジデータに署名](#Chapter2)
1. [カードから利用者証明書を取得](#Chapter3)
1. [利用者証明書を検証する](#Chapter4)
1. [利用者証明書の公開鍵で署名を検証する](#Chapter5)
1. [利用者証明書の属性を印字する](#Chapter6)
1
雀魂の画面から画像認識で対戦情報を持ってくる(Vol. 1)
[前回の記事](https://qiita.com/xenepic_takku/items/f25a97735a90546d1451)
# 前回までのあらすじ
> 1. 雀魂の画面のスクリーンショットを持ってくる
> 1. OpenCVのテンプレートマッチングでスクショから牌姿情報を持ってくるという方針を決めたのはいいものの、いきなり1. でつまづく。
雀魂のスクショを取ってこれないのである。
[参考にした記事](https://qiita.com/hiro0156/items/51ab267f4f47f2f8fe76)だとスクショなんてスッと取ってきてるんだけど、node.jsになると途端に難しいらしい。# スクショ難民
さて、色々調べた時に巡回したページを挙げる。> C#での画面キャプチャの取得方法を徹底解説!
https://www.fenet.jp/dotnet/column/language/4633/> Pythonでスクリーンショットを取得して指定フォルダに保存する
[URL長いので省略](https://office54.net/python/app/p
VS Codeでnpm script をタスク登録しておくと便利だよ (ターミナルから実行している人へ送るTips)
# 概要
* みなさんnpm scriptの実行どうやってますか〜?
* 僕は普段は、VS Codeのターミナルからコマンドを直接打って実行しています。
* ただ、npm scriptが増えてくるとあれ、、あのコマンドなんだっけってなることあると思うんですよね、あとはプロジェクトごとにnpm scriptも変わってきますし、
* 今回はそんな人へ送るVS Code活用術について記事にしてみました。(織田さん、このTips教えていただきありがとうございますw)# VS Codeでnpm script をタスク登録
* npm scriptってやりたいことが増えると、下記のようにめっちゃ増えていきますよね、
* そうすると実行時に、あれ。。なんだっけってなりがちです。“`json
{
“scripts”: {
“start”: “hogehoge”,
“build”: “hogehoge”,
“prebuild”: “hogehoge”,
“postbuild”: “hogehoge”,
githubのスター数の一覧を取得するスクリプト
# 背景
githubのリポジトリのスター数を色々比較して見たかったので出力できるスクリプトを作ってみた。# 実行方法
## 事前準備
– inファイルを用意しておく
– 対象リポジトリ名一覧を記述
– .envファイルを用意しておく
– GITHUB_TOKENを定義
## 実行
“`console
$ yarn add ygor @octokit/core fs readline dotenv
$ node task.js output_star
“`# コード
https://gist.github.com/tashua314/3ecdfb83b5aa4a924c1209471c00ef42
“`javascript:task.js
/**
* `https://github.com/{owner}/{repo}` のownerとrepoの情報をまとめたファイルを読み込み、
* スター数一覧を追記したファイルを出力する。
*
* # 実行例
* node task.js output_star
*
* # inファイル例
* “`
Node.jsの基本操作
Macで動作確認済み
### Node install 確認
node -v
v18.2.0
私のNodeJS+TypeScriptプロジェクト初期設定手順
# この記事について
NodeJS環境で実行するサーバサイドアプリケーション開発において
新規プロジェクト(リポジトリ)に TypeScript、フォーマッタ(Prettier)、リンタ(ESLint)、単体テストツール(Jest)を導入する手順のメモ
※適宜加筆修正を行っていく予定# 手順
## package.json の生成
“`sh
npm init -y
“`## TypeScript の導入
TypeScript本体とNodeJS組み込み機能の型定義パッケージをインストール
“`sh
npm install –save-dev typescript @types/node
“`### tsconfig.json を設定
以下のコマンドで、コメント付きの tsconfig.json ファイルが生成されるのでいくつか設定を変更する
“`sh
npx tsc –init
“`以下の設定例ではソースコードを src ディレクトリ、生成物を dist ディレクトリに配置する設定となっている
“`json:tsconfig.json 設
実験的なJavascriptの仕様であるECMAScript throw expressionsを利用してみた ESLintの設定も
## 以下の記事を参照して頂ければと思います
https://note.com/shift_tech/n/n2a3b9bab4c50
## 補足
ソースコード全体は以下。https://github.com/yuta-katayama-23/node-express/commit/64bae9571175e44eaf3a63d7805d50e09cade55c
以前、[ところでwebapckでESLintが動くというけどタイミングは?](https://qiita.com/yuta-katayama-23/items/5d73bbe79c19301551df#%E3%81%A8%E3%81%93%E3%82%8D%E3%81%A7webapck%E3%81%A7eslint%E3%81%8C%E5%8B%95%E3%81%8F%E3%81%A8%E3%81%84%E3%81%86%E3%81%91%E3%81%A9%E3%82%BF%E3%82%A4%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AF)において、ESLintが実行されるコードがトランスパイ
nodemailerとGmailと2段階認証
2段階認証を使っているGmailのアカウントを使ってnodemailerでメールを送ろうとしたら詰まったので、自分用の備忘録メモ。
## nodemailerでGmailからメールを送りたい
nodemailerでGmailを使ってメールを送る場合はこんな感じのコードでできる。“` js
const nodemailer = require(‘nodemailer’);async function sendEmail() {
const transporter = nodemailer.createTransport({
service: ‘gmail’,
auth: {
user: process.env.EMAIL,
pass: process.env.EMAIL_PASS,
},
});const mailContents = {
from: process.env.EMAIL,
to: process.env.TO_EMAIL,
subject: ‘Test Mail’,
Twitter Api 登録から使用まで node.js win10
ツイッターアカウント持ってれば割とすぐ終わると思います。
お試しでAPIを打つだけなら、Twitterアカウントにアプリを連携するだけでブラウザからAPIを打てた。
https://oauth-playground.glitch.me/?id=createTweetAPI利用申請は0分で終わったので、緩くなったのかもしれないです。
登録作業は下記を参照
https://qiita.com/kzthrk/items/84acb969dc0b23aeae58
API申請(これは英文不要の作業)
https://toxublog.com/blog/twitter_api_apply/ブラウザのjavascriptからAPIは使用できないので node.js をインストール(windown10)
https://qiita.com/echolimitless/items/83f8658cf855de04b9cePowerShellからnodeが使用可能になったら最初の記事にあるnode.jsの部分を参照してサンプル作成する。
※必ずエラーが出るはずなので、err