- 1. OpenCC で中国語変換だけしたい!
- 2. Node.jsをバックエンドに使うべきユースケース
- 3. AWS DocumentDB に Node.js/mongoose で接続する
- 4. Fastify + Typescriptでrequestに任意の情報を加える
- 5. Node.jsでGoogle Drive上にフォルダ作成と存在確認 (Google Drive API v3)
- 6. Node.jsでGoogle Drive上のファイルをコピーする (Google Drive API v3)
- 7. 初めてのシステム案件で詰まったお話(Heroku + puppeteer)
- 8. 東京アラートBOTを作ってみた
- 9. なぜAPサーバーをWebサーバーとして利用しないのか
- 10. 世界初!異色のコラボ!「ラブライブ!」と「ワイルド・スピード」の聖地を教えてくれるLINEbot!
- 11. Cloud Functions for FirebaseでNode.js 12を利用する方法
- 12. Node.jsでGoogle Driveにファイルをアップロードする (Google Drive API v3)
- 13. Node.jsでGoogle Drive上のファイルをダウンロードする (Google Drive API v3)
- 14. 【AWS・Lambda】Lambdaから別リージョンのサービスを使用するための設定
- 15. mongoDBのドキュメント削除方法
- 16. Node.jsでExpress.jsを使ってpng画像を動的に表示するサンプル
- 17. DynamoDB Localトラブルシューティング(Node.js + TypeScript)
- 18. Asciidoctor.jsでプレビューしながら編集する
- 19. Express+Passportで簡単にOpenID ConnectのRPを作成してみた
- 20. esbuildがwebpackより187倍早いらしいので環境構築しよう
OpenCC で中国語変換だけしたい!
# OpenCC とは?
npm の漢字変換もづーる。
https://github.com/BYVoid/OpenCC
# インストール
パッケージに入れたいわけじゃない、そもそもパッケージがない、リソースに追加したいだけなので、グローバルインストール。
`npm i opencc -g`そして、 node.js でさっさとオブジェクトをいい具合にしたいだけなので、 require に必要なフルパスを探す。
`find $HOME/.nvm/ -name opencc`
以下、
`$userdir` は `$HOME`
`$version` は `node -v` の結果
で読み替えてください。“`OpenCC-sample.js
const OpenCC = require( ‘/home/$userdir/.nvm/versions/node/$version/lib/node_modules/opencc’ );
const t2s = new OpenCC( ‘t2s.json’ );/*
* 英語,日本語,繁体字中国語 でリソース組んだけど O
Node.jsをバックエンドに使うべきユースケース
> こちらの記事は、Max Savonin 氏により2020年6月に公開された『 When To Use Node.js as a Back-End 』の和訳です。
> 本記事は原著者から許可を得た上で記事を公開しています。# Node.jsをバックエンドに使うべきユースケース
![node.jsバックエンド ](https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2020/06/When-To-Use-Node.js-as-a-Back-End-square.png)
JavaScriptは、世界で最も人気のあるプログラミング言語の1つだ。 現在の状況ではライバルになれるのはPythonとJavaだけであり、コンピューティング市場で約8%のシェアを保持している。
Webに関しては、JavaScriptの地位はさらに一つ突き抜けている。 JavaScriptは、事実上、Chrome(またはその派生物)またはFirefoxブラウザーで使用可能な大部分のWebアプリケーションを強化している。 結局の
AWS DocumentDB に Node.js/mongoose で接続する
## やりたいこと
mongo 互換の AWS DocumentDB に mongoose から接続したい。
[mongoose で docker でたてた MongoDB に接続するのにはまった話](https://qiita.com/kurab/items/90b745654f6fc4159e3a)
以前書いたような感じで接続したい。
今回の環境は、AWS で立てた AmazonLinux2 インスタンスからの接続。
“`
$ cat /etc/os-release
NAME=”Amazon Linux”
VERSION=”2″
ID=”amzn”
ID_LIKE=”centos rhel fedora”
VERSION_ID=”2″
PRETTY_NAME=”Amazon Linux 2″
ANSI_COLOR=”0;33″
CPE_NAME=”cpe:2.3:o:amazon:amazon_linux:2″
HOME_URL=”https://amazonlinux.com/”$ node -v
v14.8.0
“`なお、DocumentDB は、Toky
Fastify + Typescriptでrequestに任意の情報を加える
# 背景
認証などをサーバ側で行なった際、ユーザを特定させると思うのですが、その特定したユーザ情報をrequestにいい感じに実現したいなと思い調べてみました。ちなみに、fastifyのversionはv3系です。
結論を先に書いとくと、decorateRequestを使うといい感じにできました。
# やり方
認証機能などを実装する際、fastifyのhooksを用いて下記のように書くと思うのですが、そうするとTSに怒られる。“`javascript
fastify.addHook(‘onRequest’, (request, reply, next) => {
// TSにrequestにuserIdなんてプロパティないわと怒られる
request.userId = userId;
next()
})
“`かと言って下記の様にしちゃうと、どこからでも上書き出来てしまって嫌だな〜と思っていた。
できれば、setterを使いたい。“`javascript:@types/fastify/index.d.ts
import { FastifyInst
Node.jsでGoogle Drive上にフォルダ作成と存在確認 (Google Drive API v3)
Google Drive上でフォルダを作成します。
* 参考記事
* [Node.jsでGoogle Drive上のファイルを削除する (Google Drive API v3)](https://qiita.com/n0bisuke/items/a1b39635029242f31713)
* [Node.jsでGoogle Drive上のファイルをリネームする (Google Drive API v3)](https://qiita.com/n0bisuke/items/dcc7be337a555b018b19)
* [Node.jsでGoogle Drive上のファイルを指定フォルダに移動する (Google Drive API v3)](https://qiita.com/n0bisuke/items/8f108408a9e1067b9225)
* [Node.jsでGoogle Drive上のファイルを複製(copy)する (Google Drive API v3)](https://qiita.com/n0bisuke/items/6d73bb6e1af123db
Node.jsでGoogle Drive上のファイルをコピーする (Google Drive API v3)
Google Drive上でのファイルコピーを試します。
* 参考記事
* [Node.jsでGoogle Drive上のファイルを削除する (Google Drive API v3)](https://qiita.com/n0bisuke/items/a1b39635029242f31713)
* [Node.jsでGoogle Drive上のファイルをリネームする (Google Drive API v3)](https://qiita.com/n0bisuke/items/dcc7be337a555b018b19)
* [Node.jsでGoogle Drive上のファイルを指定フォルダに移動する (Google Drive API v3)](https://qiita.com/n0bisuke/items/8f108408a9e1067b9225)
* [Node.jsでGoogle Drive上のファイルを複製(copy)する (Google Drive API v3)](https://qiita.com/n0bisuke/items/6d73bb6e1af12
初めてのシステム案件で詰まったお話(Heroku + puppeteer)
# はじめに
こんにちは!ばーんです
今回は自分が初めて納品したシステム開発のお仕事で得たものを整理していきます。
今回書いていく内容は
– システム開発全般
– puppeteer(スクレイピング)に関すること
– Heroku(PaaS)に関することについて書いていきます。これからシステム開発していきたい!
と考えている方は、見ていただけると気づきがあるのかなと思います。## 結論
ざっくり大切だなと感じたことが3点。
**①デバッグ / コードレビューはお金を支払ってでも現役エンジニアにお願いする**
(デバッグは詰まりに詰まったか、単純に自分がしているところを見てもらう)
見ている観点がそもそも違うのでとても勉強になります。**②基礎を学ぶことが遠回りのように見えて近道**
結局上辺だけの解決方法では解決しないことが殆どでした。
今回で言えば公式ドキュメントなどの一次情報を見る。linuxについて理解を深めるなど。**③簡単なことはGASで解決できる**
システム開発これから携わりたい!という方はまずGAS触ればいいと思います。
クライアントの要望の
東京アラートBOTを作ってみた
##東京アラートBOT
LINE BOTを利用し、新型コロナウィルスの新規陽性者数、死亡者数、検査数、東京アラートが出ているかどうかを返してくれるものを作成しました。
###東京アラートを発令する基準
作る過程で東京アラートが発令される基準を調べました。– 新規陽性者数
– 新規陽性者における接触不明率
– 週単位の陽性者増加比
– 重症患者数
– 入院患者数
– PCR検査の陽性者数
– 受診相談窓口における相談件数上記の7項目の状況によって検討されるようです。
重傷者が増えていないので、当面は発令されそうにありませんね。#完成品
東京アラートBOTを製作しました!最新の情報を取得してくれます。#JavaScript なぜAPサーバーをWebサーバーとして利用しないのか
# はじめに
よく聞く話として、「Web3層構造に分けよう」というものがある。Webサーバー、APサーバー、データベースだったと思う。そこで、こんな疑問が生じた。「APサーバーでもHTTPリクエストの処理ができるなら、なんでWebサーバーが必要になるんだ?」と。調べた。
# 目次
1. Webサーバーとは?
2. APサーバーとは?
3. WebサーバーとAPサーバーを分けるもう1つの理由# Webサーバーとは?
まずWebサーバーとして、ApacheとNginxの2つが挙げられることが多い。この2つについて理解する。次の記事を読んでみて欲しい。
1. [ApacheとNginxについて比較](https://qiita.com/kamihork/items/49e2a363da7d840a4149)
2. [Nginxのアーキテクチャを理解する](https://qiita.com/kamihork/items/296ee689a8d48c2bebcd)1つ目の記事では、Apacheがマルチプロセスのプロセス駆動アーキテクチャであること、Nginxがシングルス
世界初!異色のコラボ!「ラブライブ!」と「ワイルド・スピード」の聖地を教えてくれるLINEbot!
「ラブライブ!」大好き!「ワイルド・スピード」も大好き!
そんな欲張りさん向けにLINEbotを作りました。よかったら最後までご覧ください♪#作品の背景
聖地巡礼が好きな私。ロサンゼルスにワイスピの聖地巡礼に行きたいと考えているものの、コロナで旅行も行けず・・・。「ワイルド・スピード」シリーズは、スピンオフも含めて、これまでに9作品上映されているのですが、
3作目となる「ワイルド・スピードX3 TOKYO DRIFT」は、なんと東京が舞台!東京なら巡礼できる!と思い、__ワイスピ聖地巡礼bot東京版を作ることにしました!!__
ところがどっこい!!
意気揚々と調べたものの、CGで作られていたり、すでに取り壊されていたりと、聖地情報が希薄・・・。泣これではbotとして成り立たないので、大好きな「ラブライブ!」と組み合わせ、__世界初のコラボレーション__を実現しました。
#デモ動画
完成したものがコチラです!
位置情報を送ると、最寄りの聖地を教えてくれます。Cloud Functions for FirebaseでNode.js 12を利用する方法
[公式ドキュメント](https://firebase.google.com/docs/functions/manage-functions?hl=ja)の「**ランタイム オプションを設定する**」の項目には Node.js のバージョン 12 が使えることが書かれていますが、その利用方法までは書かれていなかったのでこの記事で説明します。
—
一見、ドキュメントにあるように
“`
“engines”: {“node”: “10”}
“`の箇所を`12`とすれば動きそうですが、ここに書いても動作しません。
Node.js の 12 を利用するためには、[firebase-tools](https://github.com/firebase/firebase-tools)のバージョンを`8.6.0`以上に上げたうえで`firebase.json`に`”runtime”: “nodejs12″`を指定しましょう。
“`
{
“functions”: {
“runtime”: “nodejs12”
}
}
“`参考:[firebase/fir
Node.jsでGoogle Driveにファイルをアップロードする (Google Drive API v3)
Google Driveへのファイルアップロードも試してみます。
* 参考記事
* [Node.jsでGoogle Drive上のファイルを削除する (Google Drive API v3)](https://qiita.com/n0bisuke/items/a1b39635029242f31713)
* [Node.jsでGoogle Drive上のファイルをリネームする (Google Drive API v3)](https://qiita.com/n0bisuke/items/dcc7be337a555b018b19)
* [Node.jsでGoogle Drive上のファイルを指定フォルダに移動する (Google Drive API v3)](https://qiita.com/n0bisuke/items/8f108408a9e1067b9225)
* [Node.jsでGoogle Drive上のファイルを複製(copy)する (Google Drive API v3)](https://qiita.com/n0bisuke/items/6d73bb6e1Node.jsでGoogle Drive上のファイルをダウンロードする (Google Drive API v3)
1年くらい前にGoogle Drive関連の記事を書いてたけど、久々に触りたくなったので調査再開。
* 参考記事
* [Node.jsでGoogle Drive上のファイルを削除する (Google Drive API v3)](https://qiita.com/n0bisuke/items/a1b39635029242f31713)
* [Node.jsでGoogle Drive上のファイルをリネームする (Google Drive API v3)](https://qiita.com/n0bisuke/items/dcc7be337a555b018b19)
* [Node.jsでGoogle Drive上のファイルを指定フォルダに移動する (Google Drive API v3)](https://qiita.com/n0bisuke/items/8f108408a9e1067b9225)
* [Node.jsでGoogle Drive上のファイルを複製(copy)する (Google Drive API v3)](https://qiita.com/n0bisuk
【AWS・Lambda】Lambdaから別リージョンのサービスを使用するための設定
# はじめに
Labmda関数から別のAWSサービスを使用したい…
でも、現在リージョンと別リージョンのサービスを使いたい!そんな時に使用する設定をご紹介します。
Pinpointなど、まだ東京リージョンで使用できないサービスを使う時にも役立ちます。
# 方法
以下はNodeの例です。
“`javascript
const AWS = require(‘aws-sdk’);
// 以下を追加
AWS.config.update({ region:’us-west-2′ });
“`# まとめ
`AWS.config.update`することで、リージョンを切り替えできます。
mongoDBのドキュメント削除方法
初めまして!初投稿です。
こうきといいます。mongoDBでドキュメント内容を削除する方法が日本語で簡潔に纏められている記事がなかったので、
備忘録にと投稿することにしました。# 環境
ターミナル : iTerm
mongoDB : ver. 4.4.0# DB起動 ログイン
“`
mongo // mongoDB起動use admin // adminの部分は各々のDB名を記入
“`#コレクション検索〜ドキュメント削除まで
##### ・コレクション検索
“`
show collections // コレクション検索
“`##### ・コレクションの中身(ドキュメント)表示
“`
db.inventory.find() //inventoryの部分は各々のコレクション名を記入
“`##### ・ドキュメント削除
inventoryの部分はコレクション名を記入
mongoDBのバージョンが3未満なら波括弧{}は不要です。“`
db.inventory.deleteMany({}) //すべてのドキュメントを削除
db.invent
Node.jsでExpress.jsを使ってpng画像を動的に表示するサンプル
画像ファイルを動的に表示するコードです。なかなか見つからなかったのでメモしておきます。
“`javascript:express.js
const express = require(‘express’);
const fs = require(‘fs’);const app = express();
app.get(‘/image’, (req, res) => {
console.log(‘image’);
fs.readFile(‘./example.png’, (err, data) => {
res.type(‘png’);
res.send(data);
});
});app.listen(‘3000’, () => {
console.log(‘Application started’);
});
“`スクリプトを実行し
“`bash
% node express.js
Application started
image
“`ブラウザで下記URLにアクセスすると画像が表示されます
ht
DynamoDB Localトラブルシューティング(Node.js + TypeScript)
`Node.js + TypeScript(Dockerコンテナ)`から`DynamoDB Local`へ接続、操作をする際に発生したトラブルの備忘録です。
## DynamoDB Localとは?
AWS上のDynamoDBにアクセスすることなく、DynamoDBを利用するアプリケーションの開発・テストをすることが可能になります。
[DynamoDB Localの設定(ダウンロード版)](https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/DynamoDBLocal.html)
## 背景
前提として`Node.js + TypeScript`のプログラムはECS on Fargateのタスクスケジューラで定期実行するプログラムです。
今回DynamoDB Localを導入するのは、開発時にAWSのDynamoDBを利用せず、ローカル環境で全て完結させたいというのが理由です。
## 忙しい人のために
トラブル対応後のファイル構成、操作手順が下記になります。
[まとめ? (ファイ
Asciidoctor.jsでプレビューしながら編集する
AsciiDoc の処理系といえば、Ruby の Asciidoctor[^asciidoctor]が有名です。しかし、JavaScript な Asciidoctor\.js[^asciidoctor_js]もあります。本記事は後者を使ってみた記録です。
## 関連
– https://qiita.com/Yamane@github/items/090973185791c174532f : ブラウザで生成結果を見つつ、AsciiDoc 文書を編集できます。反映までの時間が短かく、快適に編集できます。
– https://qiita.com/dbgso/items/927c4e3d0f739855f8d6 : こちらは Ruby 版の Asciidoctor を使っています。Docker で手軽に使い始められるところが良いですね。## バージョン
“`shell-session
$ asciidoctor -v
Asciidoctor 2.0.10 [https://asciidoctor.org]
Runtime Environment (ruby 2.7.1p83 (2
Express+Passportで簡単にOpenID ConnectのRPを作成してみた
#目的と前提
認証/認可について少しづつですが備忘録としてまとめようシリーズ2つめです。
前回はSAML2.0の仕様についてまとめてみました。
https://qiita.com/yuna-s/items/8aa318ca5426c3d9c7e6今回は、Nodejsを使ったRPの作成[1]です。
OpenID Connectのアクセストークン取得まで実装しています。
(UserInfoを取得するところは実装していません)IdPの作成にはオープンソースソフトのOpenAM[2]を使用しています。
認証/認可、基礎的なOpenID Connectの知識があることを前提としています。
#環境
macOS Catalina v10.15.5
OpenAM 14.5.1 Build d8b8db3cac (2020-March-11 23:25)
node v13.13.0利用モジュール
“dependencies”: {
“cookie-parser”: “~1.4.4”,
“debug”: “~2.6.9”,
“express”: “~4.16.1”
esbuildがwebpackより187倍早いらしいので環境構築しよう
# はじめに
久しぶりの投稿になります。
今回は以下の記事で、esbuidがすごい!!という話を聞きつけこの記事を書くことにしました。
参考: [Web フロントエンド] esbuild が爆速すぎて webpack / Rollup にはもう戻れないどのくらいすごいのでしょうか?
参考に挙げている記事によると
> esbuild は Go 言語で書かれた JavaScript および TypeScript のビルドツールです。 esbuild 単体でトランスパイル + バンドル + ミニファイできます。 JSX / TSX もサポートされています。そしてめっちゃくちゃ速いという触れ込みです。最初から速度を意識して無駄がないように書かれており、構文解析・出力・ソースマップ生成は並列化され、ネイティブコードで動作します。公式の