- 1. ローカルでデバッグ&テスト可能なLINEチャットボット開発環境(Node.js Express LINESimulator )を作成する
- 2. Heroku + LINE + node.js (Express.js)でオウム返しボットを作成する
- 3. Node.jsでBASIC認証.
- 4. Expressコマンドがありません(Windows)
- 5. コマンドラインからスマートLEDランプ(TP-Link KL110/KL130)をつける
- 6. 【Node.js】zxcvbnを使ってパスワード強度をチェックする
- 7. React で eject せずに Scoped SASS (.scss) を使う
- 8. はじめてのGitHubActionsMarketplace公開 – PRにマイルストーンをつけるActionをつくってみた
- 9. 堅牢な node.js プロジェクトのアーキテクチャとは?
- 10. Firebaseをなるべく安い料金で頑張りたい人へ
- 11. node.jsを触るために簡単なチャットシステムを作る(メッセージ送信編)
- 12. Unityの.alfファイルから自動で.ulfをダウンロードしたい!
- 13. Custom Vision Service を使用してインテリアの樹種分析
- 14. How to build a Twitter bot with NodeJs
- 15. discord.jsでDiscord Botを作ってみた
- 16. Node.jsのasync/awaitとPromiseを超ざっくり_前編
- 17. 【待望リリース!】もう Lambda×RDS は怖くない!LambdaでRDSプロキシを徹底的に検証してみた 〜全てがサーバレスになる〜
- 18. obnizと圧電スピーカーを使ってキーボードをキーボード(音楽)に変えてみた
- 19. NestJS でダミーの Service を注入し、外部依存のないテストを実行する
- 20. Node.jsのHTTPリクエストヘッダの最大サイズでハマった話
ローカルでデバッグ&テスト可能なLINEチャットボット開発環境(Node.js Express LINESimulator )を作成する
#ローカルでデバッグ&テスト可能なLINEチャットボット開発環境(Node.js Express LINESimulator )を作成する
※本記事は最終的にQ&Aチャットボットを構築するための一部分となります。
[本編はこちら](https://qiita.com/abemaki/items/8c611cc63ec109ab3835)※前段の記事で作成したオウム返しチャットボットベースとなります。
[まだ未作成の方はこちら](https://qiita.com/abemaki/items/44d2015561c31ea9628e)###DEBUG環境を作成する
####1.DEBUG環境を作成します
構成の追加からlaunch.jsonを生成します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524081/060d9888-c146-2b7a-ea9f-d90c8764bb14.png)
DEBUG用の設定情報を追加します。DEBUG時はシュミレータ
Heroku + LINE + node.js (Express.js)でオウム返しボットを作成する
#Heroku + LINE + node.js (Express.js)でオウム返しボットを作成する
※本記事は最終的にQ&Aチャットボットを構築するための一部分となります。
[本編はこちら](https://qiita.com/abemaki/items/8c611cc63ec109ab3835)##何故、オウム返しなのか?
オウム返しはチャットボット構築の基礎中の基礎になります。
オウム返しすることで以下の3点が確認・理解できます。①単純な疎通確認
・今回だと、スマホ ←→ LINE ←→ メッセージングAPI ←→ Herokuで稼働するアプリまでの疎通確認になります②単純な動作確認
・LINEで発話した内容を正常に受信できることの確認
・アプリケーションから発話した内容がLINEで正常に受信できることの確認③疎通に必要な手順の理解、メッセージのやりとりに必要な手順の理解
はじめて使う技術でWebアプリケーション作成するときに最初にやるhello worldと同じですね。
単純なことですがこれらを最初にやるかやらないかでは技術の習得レベル
Node.jsでBASIC認証.
# Node.jsでBASIC認証
Node.jsでexpressを使ったWebサーバでBASIC認証を導入する場合の実装方法について紹介します.
本記事上では,パスワードを暗号化・ハッシュ化せずにソースコード上に記載しております.セキュリティ上望ましくない点にご注意ください.# BASIC認証の導入
expressでBASIC認証を導入するには[express-basic-auth](https://www.npmjs.com/package/express-basic-auth)を使用します.下記がそのサンプルコードです.“`javascript
const express = require(“express”)
const basicAuth = require(“express-basic-auth”)// 正解のユーザ名とパスワード
const correctUserName = “hiroyky”
cosnt correctPassword = “password”const app = express();
app.use(basicAuth({
Expressコマンドがありません(Windows)
# 一週間悩んだ・・・
“`bash
bash: express: command not found
“`#ググり、そして出版会社にもメールを投げた
パスが通ってないっていうのがかなり記事としてあがっていたが、どうも違う。
出版会社に問い合わせたらnpm install -g express-generator をsudoで実行するというのもあったが、
そもそもsudoの時点でコマンドがありません。お手上げ。#もしかしてnode.jsのバージョンが古いのでは?
一旦アンインストールし、最新版をインストールしてからnpm install -g express-generator#そして・・・expressコマンド実行
“`bash
$ express -e ex-gen-app
“`#コマンドが通った!
“`
$ express -e ex-gen-appwarning: option `–ejs’ has been renamed to `–view=ejs’
create : ex-gen-app\
create : ex-g
コマンドラインからスマートLEDランプ(TP-Link KL110/KL130)をつける
TP-Link社のWifiスマートLEDランプ KL110/KL130 を使って、同一ネットワーク内にあるmacbookからランプをコマンドライン制御します。
このランプの良いところは、電灯のON/OFFだけでなく色温度や輝度を調節できる点です。
例えば– 暖色系の色で輝度を落として落ち着いた雰囲気で集中作業する
– 手元でモノを探すときに輝度を上げる
– 物理本を読むときに色温度を変える(Kindleの背景の白とセピアくらい紙の色味が変わる)といったことが手元でできるのが良いです。
特に色温度を変えるとだいぶ色味が変わります。
↓実際にランプの色温度最低値と最高値で見比べた写真:2500K<--->9000K
【Node.js】zxcvbnを使ってパスワード強度をチェックする「パスワード強度チェックするようなライブラリって何かあるのかな?」
と興味本位で調べてみたら`zxcvbn`というものが見つかったので、ご紹介。# zxcvbnとは
Dropbox社製のパスワード強度チェッカーです。
Node.js以外にも色々な言語に対応したライブラリが作られています。[dropbox/zxcvbn: Low\-Budget Password Strength Estimation](https://github.com/dropbox/zxcvbn)
# 準備
“`bash
$ npm i zxcvbn
“`# 基本的な使い方
とりあえず`hogehoge`という文字列に対してパスワード強度をチェックしてみましょう。
“`javascript
const zxcvbn = require(‘zxcvbn’);const result = zxcvbn(‘hogehoge’);
console.log(result);
“`基本的な使い方はとても簡単ですね。
第2引数に入力を渡して更に細かい設定をすることも可能なようですが、今回は
React で eject せずに Scoped SASS (.scss) を使う
## 概要
– scoped sass (ファイル内限定で適用されるスタイル) を使いたいでござる
– でも`npm run eject`はしたくないでござる
– `cra-sass` を導入するとかんたんにできるでござる## 参考文献
– [How to use Sass and CSS Modules with create-react-app](https://blog.bitsrc.io/how-to-use-sass-and-css-modules-with-create-react-app-83fa8b805e5e)
– [leighs-hammer/cra-sass](https://github.com/leighs-hammer/cra-sass)## 実行環境
– `create-react-app` で作った react project
– 既存プロジェクトなのでversionわからん すまん
– TypeScript## サンプルコード (変更前)
`node-sass` を入れてふつーにscssを使うとこうなる。### Sample.t
はじめてのGitHubActionsMarketplace公開 – PRにマイルストーンをつけるActionをつくってみた
Actions使ってなにかするworkflowをつくるんじゃなくてAction自体をつくる話。
なにか簡単にGitHubActionsをつくってみたいと思い、GitHub公式の[actions/labeler](https://github.com/actions/labeler)を参考にPRにラベルじゃなくてマイルストーンをつけるActionをつくろうと考えた。
[Marketplace](https://github.com/marketplace?utf8=%E2%9C%93&type=actions&query=milestone)で検索した結果、labelの方はちょいちょいあったがmilestoneの方はそんなにはまだなかった。マイルストーンの作成や更新がしたいのではなくてPRに既存のマイルストーンを結びつけたいってなると1,2件ぐらいしか無さそう。それらもこちらのやりたいこととは違った。
最終的につくったのは[iyu/actions-milestone](https://github.com/marketplace/actions/pull-request-milesto
堅牢な node.js プロジェクトのアーキテクチャとは?
![](https://softwareontheroad.com/static/67573153921d5784565f0e1c070258a4/a8422/node-project-structure.jpg)
>こちらの記事は、[Sam Quinn](https://softwareontheroad.com/author/santypk-4/) 氏により2019年 4月に公開された『 [Bulletproof node.js project architecture ](https://softwareontheroad.com/ideal-nodejs-project-structure/) 』の和訳です。
本記事は原著者から許可を得た上で記事を公開しています。[GitHub repository](https://github.com/santiq/bulletproof-nodejs)での実装例: 2019/04/21 アップデート
# 始めに
Express.jsは、node.js のREST APIを作成するための優れたフレームワークですが、node.jsプ
Firebaseをなるべく安い料金で頑張りたい人へ
この記事は[Firebaseアドベントカレンダー](https://qiita.com/advent-calendar/2019/firebase)の5日目の記事です。
どうも!ハムカツおじさんという名前でtwitterやってます([@hmktsu](https://twitter.com/hmktsu))?
自分でだったり弊社でだったりなどFirebaseを使ってサービスを作っています。ちなみに先日Firebase Meetup #15 Cloud Functions Dayにて下記のスライドを発表させていただいたので、興味ある人はご覧になってください!
[Firebaseオンリー + React Nativeでアプリを作ると果たして簡単になるのか?](https://speakerdeck.com/watanabeyu/firebaseonri-plus-react-nativedeapuriwozuo-rutoguo-tasitejian-dan-ninarufalseka)## はじめに
色んなツールを作るのにFirebaseを使うととても便利だなぁという感想を持って
node.jsを触るために簡単なチャットシステムを作る(メッセージ送信編)
Node.js を触ってみたいと思ったので、備忘録も兼ねて以下に記します。
よりよい方法やバグ等ございましたら、アドバイスいただけると光栄です。今回は「メッセージ送信編」ということで、クライアントからサーバーへのメッセージの送信の処理を作成します。
※前回 [node.jsを触るために簡単なチャットシステムを作る(サーバー接続編)](https://qiita.com/sunnyG/items/2e7b9d89acfc2b0938e4) という表題で、サーバー接続の処理を作成していますので、まだな方はこちらを参照ください。
# クライアントからサーバーへメッセージを送信する
## メッセージ入力フォームを作成
`/public/index.html` に、以下のメッセージ入力フォームを追加します。
“`html:index.html
Unityの.alfファイルから自動で.ulfをダウンロードしたい!
# CIのActivateとかでライセンスを自動でActivateさせたい!
CIでUnityを扱う時はJenkinsとかであれば問題ないのですが、CircleCIやGitHub Actionsを使用するときにDockerでのライセンス認証では.ulfファイルというのが必要になってきます。
現在.ulfファイルをコマンドラインから生成することはできません。生成するにはブラウザ経由の一択です。
それを今回Puppeteerというnode.jsのツールを使って自動化してみました。※今回の認証フローはPersonalEdition固定になります。
Puppetterとは、Webブラウザでの操作をソースコードから行えるものになります。
詳しくはこちら
[Puppeteer](https://developers.google.com/web/tools/puppeteer)今回のリポジトリはこちら
[MizoTake/unity-license-activate](https://github.com/MizoTake/unity-license-activate)## 実装
Custom Vision Service を使用してインテリアの樹種分析
##CustomVisionService を 簡単なサイトを作って使えるようにしたい
今週はMicrosoftAzureから画像認識を試したのでそちらの成果を簡単に使えるサイトを作ろうと
思いました。内容はせっかくなので本業にちなんでインテリアの画像から樹種を解析してくれるものを目指しました。
内装を考える時にテーマとなる樹種を一つ決めて組み合わせていくと空間にまとまりが出るので、
自分が良いなと思う家具や内装がどの樹種なのかを調べられると買う家具や似合う色が決まってきて
インテリアを構築する時の参考になると良いなと思いました。##環境
Node.js v10.16.3
Windows 10 pro
Visual Studio Code v1.39.1##概要
①MicrosoftAzureでアカウントを作成
②Microsoft Custom Vision Service を使用して画像解析のプロジェクトを作成、トレーニング
③作成したプロジェクトをAPIとして使用する
④APIを取得する為のコードを書く##参考資料
主に①~②の参考にいつもどおり先陣
How to build a Twitter bot with NodeJs
Building a Twitter bot using their [API](https://codesource.io/how-to-consume-restful-apis-with-axios/) is one of the fundamental applications of the Twitter API. To build a Twitter bot with Nodejs, you’ll need to take these steps below before proceeding:
Create a new account for the bot.
Apply for API access at developer.twitter.com
Ensure you have NodeJS and NPM installed on your machine.
We’ll be building a Twitter bot with Nodejs to track a specific hashtag then like and retweet every pos
discord.jsでDiscord Botを作ってみた
# 概要
discord.jsでbotを作ったので、それを書き留めときます。
インストールは、Ubuntu mateを想定したものを紹介致します。
他のOSを使っている方に関しては、調べてください# Node.js&npmのインストール方法
コマンドラインを開き下のコマンドを実行します。“`
sudo apt install -y nodejs npm
“`# discord.jsのインストール方法
こちらもコマンドラインを開き下のコマンドを実行します。“`
sudo npm i discord.js
“`# 実際に書いていく
まずは、discord.jsを読み込むコードを書きます。“`javascript:index.js
const discord = require(“discord.js”);
const client = new discord.Client;
“`簡単な返事機能のコードを書きます。
“`javascript:index.js
//続き
client.on(“message”, message =>{
if (
Node.jsのasync/awaitとPromiseを超ざっくり_前編
現在関わっているプロジェクトでNode.jsを使って開発しています。
その過程でハマったこと、今回はasync/await・Promiseについての記事になります。といってもNode.jsを使ったことのない人もいると思うので簡単にNodeの非同期処理について紹介してから、ハマったポイントについて書きたいと思います。
※すみません、未完成なのでタイトル詐欺になってしまっています。
※100番煎じなので非同期の書き方に関してはあんまり詳しく書きません。
※arrow関数使ってません。説明省くので。
※間違いあれば教えていただければと思います。## 目次
1. Node.jsの非同期処理について
2. 非同期処理の書き方
2.1 コールバック(callback)関数
2.2 Promise ←この記事はココまで!
~~2.3 asycn/await~~
~~3. Promiseとasycn/awaitが一緒だと思ったらハマった件~~
4. 参考Nodeを使ったことがあって1~2についてわかって
【待望リリース!】もう Lambda×RDS は怖くない!LambdaでRDSプロキシを徹底的に検証してみた 〜全てがサーバレスになる〜
本日の reinvent でのリリースで衝撃のアップデートがたくさん出ましたね。EKS on Fargate や SageMaker の大幅アップデートも魅力的ですが Lambda の常識をくつがえす RDS のプロキシ機能が登場しました ?
ついに出ました!これでLambdaからRDS使うの怖くなくなります。Lambdaからも使えるコネクションプールマネージャ。これでLambdaとRDBMSの相性問題は先日のVPCの改善と合わせて解消されますー。SQL最高!! / “Using Amazon RDS Proxy with AWS Lambda | AWS Compute Blog” https://t.co/YWgIu19GoH
— Keisuke69@AWS re:Invent (@Keisuke69) obnizと圧電スピーカーを使ってキーボードをキーボード(音楽)に変えてみた
# はじめに
いまOTTOというArduinoベースのオープンソースロボットをobnizに移植する個人プロジェクトを進めています([IoTLT vol.54](https://iotlt.connpass.com/event/138773/)で[LTしたやつ](https://speakerdeck.com/miso/obnizdeyou-buopunsosurobotuto)です)。
OTTOには圧電スピーカーも搭載されており、これを使ってロボっぽいピロピロ音を出すことができます。先日、この圧電スピーカーを使ってobniz版OTTOに今流行りのパプリカを歌わせてみました。
OTTOにパプリカ歌って踊らせてみた pic.twitter.com/6W8Zq1ncjT
— 田中みそ@LINE API Expertになりました! (@miso_develop) NestJS でダミーの Service を注入し、外部依存のないテストを実行する
この記事は [NestJS アドベントカレンダー](https://qiita.com/advent-calendar/2019/nestjs) 4 日目の記事です。
## はじめに
[先日は Module と DI について説明しました](https://qiita.com/euxn23/items/acce35485feed5badf4b)が、本日はもう一歩進んだ DI を活用したテストを実施してみます。
なお、サンプルでは MySQL に接続したり Docker を使用したりしていますが、怖がらないでください。
この記事では MySQL や Docker に依存せずにテストできるようにするテクニックを説明します。サンプルコードのリポジトリは以下になります。
https://github.com/nestjs-jp/advent-calendar-2019/tree/master/day4-inject-dummy-service-to-avoid-external-dependency
なお、環境は執筆時点での Node.js の LTS である v12.13.1
Node.jsのHTTPリクエストヘッダの最大サイズでハマった話
## 現象
– Node.js(v12.3.1)で立てたWebサーバにアクセスすると、時折HTTPリクエストに失敗する
– Cookieを削除したり、ブラウザを再起動すると治ることもあるが、根本的な原因がわからない“`javascript:サンプルコード
const http = require(‘http’);const server = http.createServer((req, res) => {
res.writeHead(200, {‘Content-Type’: ‘text/plain’});
res.end(‘Hello World’);
});server.listen(8080);
“`
## 原因– Node.jsの最大HTTPリクエストヘッダサイズのデフォルト値である8kBを越えるHTTPリクエストヘッダサイズを送信していたことが原因だった
– Node.jsは、2018/11に[DoS攻撃の脆弱性対応](https://nvd.nist.gov/vuln/detail/CVE-2018-12121)として、デフォルトの