- 1. 続・実録 Node-REDノード作成 24時
- 2. Slackで匿名で投稿できるチャンネルを作ろうとしたら少しだけ苦労した話
- 3. Vue.jsのコンポーネントのimport文をdynamic importに変換するcliコマンドを作りました
- 4. Firebase Admin SDKで一般的なWebサービスの構成にFirebase Authenticationを使った認証処理を組み込む。
- 5. macへnode.jsのインストール
- 6. ObnizとAWS LambdaとLINEを使って家のエアコンをスマート化した話
- 7. Express + Vue.jsでhelloを出してみよう
- 8. npmパッケージを公開するならnpが便利!
- 9. CloudFuntionsで「File ./dist/index.js that is expected to define function doesn’t exist」と言われた(TypeScript)
- 10. yarn link実行後、cliでコマンドを入力してもPermission deniedになる場合
- 11. Firestoreの対話型シェルをいきなり起動する
- 12. 初心者が Googleアシスタント と Vue.js を使ってスマートディスプレイアプリを作ってみた
- 13. linux版 nodeとnpmとprettier
- 14. VSCodeのREST ClientでCognitoを利用するためのツールを作ってみた
- 15. axiosのヘッダーのconfigでちょっとハマった
- 16. NodeでLINE Botを扱うには
- 17. Node.js v12でnode-gypでのビルドが通らない場合、v10をインストールすればよい
- 18. Node.jsでローカルにある複数の画像をディレクトリを分けつつリサイズする
- 19. Ubuntuにインストールしたyarnが実行できない
- 20. ローカルPCのNode.jsでaws-sdkの認証を通す
続・実録 Node-REDノード作成 24時
こんにちは、ポキオです。
[IoTLT Advent Calendar 2019](https://qiita.com/advent-calendar/2019/iotlt)と[enebular Advent Calendar 2019](https://qiita.com/advent-calendar/2019/enebular)の15日目の記事です。
~~手抜きです、ごめんなさい。~~![ポキオ Node-RED ノード作成](https://lh3.googleusercontent.com/ErN3bJigHpElEQ0-tnk_k8az9XIHRdR9Px3nJQtUuFvu37sn5TPTy7sWekD2Y4nF237SV0m6sk4exQjKquAtBqp2XLLjY1SKxZrI9VGXTY8IFydWAv6_kDZOFEtBkMmyCG5rf739ypg=s600 “ポキオ Node-RED ノード作成”)
## tl;dr
– 京急ノードを作ってみました
– Node-REDのノードライブラリに反映されるまで時間がかかることがあります
– 一度公
Slackで匿名で投稿できるチャンネルを作ろうとしたら少しだけ苦労した話
# はじめに
研究室でSlackを導入してから2年くらい経ちました。
話題でチャンネルを分けれるので非常に便利です。雑談用のチャンネルもあるのですが、特定の人ばかり話していて盛り上がりに欠けます。
「匿名ならみんな発言してくれるかも」と思ったのがきっかけで、匿名用のチャンネルを作りました。Googleで検索したら3年前のQiitaの以下の記事がヒットしました。
[「超簡単にSlackで匿名の意見を投稿できるようにする」 @shibukk](https://qiita.com/shibukk/items/8675e7684dba0476906c)**「超簡単」**とありますが、記事通りにやっても上手くいかず、少しだけ苦労しました。
BotKitのバージョンが上がって中身が変わっていたのが原因でした。修正した部分を自分の備忘録としてまとめておきます。
実行環境はUbuntu16.04。
node.js, javascriptが動けばどこでも大丈夫なはずです。# SlackのBotの取得
ここは本家と一緒です。
[「Botを追加する」](https://qiita.c
Vue.jsのコンポーネントのimport文をdynamic importに変換するcliコマンドを作りました
Vue.jsのコンポーネントのimportをdynamic importに変換するcliコマンドを作りました。
特定のディレクトリ配下のvueファイルを全てdynamic importに変換します。ソースはこちらで公開しています。
https://github.com/harhogefoo/dynamic-import-converter“`vuejs:通常のcomponentのimport文
“`“`vuejs:dynamic_importに変換
Firebase Admin SDKで一般的なWebサービスの構成にFirebase Authenticationを使った認証処理を組み込む。
# 概要
[Firebase #2 Advent Calendar 2019](https://qiita.com/advent-calendar/2019/firebase_2)の14日目の記事です。[Firebase Authentication](https://firebase.google.com/docs/auth?hl=ja)を使用した記事は数多くあるのですが、少なくはないユースケースである、`Webサービスでのサーバーサイドでの認証も含めたFirebase Authenticationの利用`に関する記事が見当たらなかったので、サンプル実装を書いてみました。
## 今回のFirebase Authenticationの想定ユースケース
– 自前でのユーザー管理は行いたい
– 認証部分のみFirebase Authenticationを導入し、Googleアカウントとの紐付けを行いたい。+認証処理の実装の省略したい。## システム構成図と認証フロー
今回作成するFirebase Authenticationを組み込んだWebアプリのシステム構成を図にしました。macへnode.jsのインストール
macにnode.jsをインストールする時に、3記事くらい参考させていただいてやっとできたので、自分ができたやり方をメモしておく。
##まず、インストールの手順としては以下になる。
1.homebrewのインストール
2.nodebrewのインストール(一瞬詰まった)
3.Node.jsのインストール(ここで結構詰まった)自分は、特に手順3の環境パスを通すところで詰まった。
##1.homebrewのインストール
####まずは、すでにインストールされているか確認。“`
$ brew -v
-bash: /usr/local/bin/brew: No such file or directory
“`上記のメッセージが表示されている場合は、インストールされていない。
####インストール
https://brew.sh/index_ja.html に書いてあるスクリプトを実行する“`
/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/masterObnizとAWS LambdaとLINEを使って家のエアコンをスマート化した話
# きっかけ
僕の家は最寄駅から徒歩20分くらいありまして、その道を毎日歩いて通勤しています。春先や秋などは良いのですが、真夏日だと蒸し暑い中で家と会社を往復しています。
会社に行く時は電車に乗れさえすればエアコンが効いてて快適です!ただ帰りの場合は、家についても中は暑く、時には外よりも蒸し暑い時もあります。
どうせなら駅に着いた瞬間エアコンをつけて、駅から家まで歩いている間に涼しくなってくれればいいのに・・・# 作ったもの
LINEから「冷房」などとメッセージを送信すると、家のエアコンの冷房スイッチをONしてくれるbotを作成しました。![out.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329420/8b5a576c-a018-be7c-9338-5026622d0820.gif)
LINEなので当然、ローカルネットワークではなくインターネット回線越しです。なので家の外でも会社でもどこでも、家のエアコンをつけたり消したりできます!
これ作ったのほんとは夏頃なのですが、冬用に暖房ON機能Express + Vue.jsでhelloを出してみよう
おはようございますこんにちはこんばんは!
最近Front-endのフレームワークが色々出て流行ってるらしくて、
友達となんかやってみよー!になってはじめました。
最初、どのフレームワークを使おうかと、
‘react / vue が人気らしいー何が違う?’とざっと検索してみたら– Vue
– テンプレート形式でアプリの制作したいなら
– 簡単で「一旦動作」ができるのが好きなら
– 早くて軽量のアプリが作りたいなら
– React
– 大きい規模のアプリを作るなら
– もっと大きい情報が欲しいならこんな差がありました。
簡単なプロジェクトだから、VueにしようーでVueを選びました。
(実は韓国で何もわからずVueの本を買ってきたので、、最初からvueにしようと決めたこともあり、、笑)back-endはnode.jsのexpress フレームワークを使います(なんでもjsでやってみよう感)
# やってみましょう^0^
1. node.js install
https://nodejs.org/
installします。ltsの方が安定的らしくてltsの方インストnpmパッケージを公開するならnpが便利!
# よくある困りごと
npmパッケージを公開・更新する場合、手順を忘れがちですよね(少なくとも私はそうです)。
これから紹介するnpコマンドを使えば、楽にnpmパッケージの公開、更新、さらにはGitHubのtagまで切ってくれる。最高です。# npコマンドの導入
“`
yarn global add np
“`npを実行すると、バージョンの選択画面が表示され、major, minor, patchのアップデートかどうかの選択肢が出る。
“`bash:patchを選択した場合
$ np
Publish a new version of パッケージ名 (current: 1.0.3)Commits:
– コミット内容Commit Range:
v1.0.3…master? Select semver increment or specify new version patch 1.0.4
✔ Prerequisite check
✔ Git
↓ Cleanup [skipped]
✔ Installing dependencies usCloudFuntionsで「File ./dist/index.js that is expected to define function doesn’t exist」と言われた(TypeScript)
[Google Cloud Functions](https://cloud.google.com/functions/?hl=ja)とTypeScriptを使ってとあるSlackボットを作っていたら、正しく依存関係を指定しているはずなのに「File ./dist/index.js that is expected to define function doesn’t exist」というエラーが出てうまくデプロイできず、結構ハマったので原因と解決策を。
—
## 先に結論。
[GCloud Functions: load error: File ./dist/index.js that is expected to define function doesn’t exist – Stack Overflow](https://stackoverflow.com/questions/52062359/gcloud-functions-load-error-file-dist-index-js-that-is-expected-to-define-fu)ここに書いてあることがすべ
yarn link実行後、cliでコマンドを入力してもPermission deniedになる場合
# 実行環境
– node: v12.13.1
– yarn: 1.19.2自前で作成したcliツールをローカルで試したい場合、`yarn link` を使用しますが、Permission deniedで実行できないことがあるようです。
“`bash
$ yarn link
$ パッケージ名
bash: /usr/local/bin/パッケージ名: Permission denied
“`実行権限を付与する必要があるとのこと。
“`bash
$ chmod +x /usr/local/bin/パッケージ名
“`で実行可能になる。
Firestoreの対話型シェルをいきなり起動する
Firestoreでちょっとしたクエリの実験するときにNode.jsのREPL(Read-Eval-Print-Loop)使って対話型シェルを利用している人は多いと思います。その時、毎回`node`コマンドを実行したあとに`.load スクリプト名`などとして接続をしている人はまさかいませんね? 人によってやり方は様々だと思いますが私のスクリプトを以下に貼っておきます。
“`javascript:db
#!/bin/bash
node –require await-outside/repl -i -e ”初心者が Googleアシスタント と Vue.js を使ってスマートディスプレイアプリを作ってみた
# はじめに
いちあき([@ichiaki_kazu](https://twitter.com/ichiaki_kazu))と言います。初めてのQiita記事です。僕はこれまでアセンブラやHTMLくらいしか触ってこなかった(ほぼ)ノンプロフリーランスです。
それをフリーランスというのか置いといて…11月に行った「Google Nest Hub対応スマートディスプレイスキルを作ろう!【Vue.js】」というハンズオンが楽しかったので、勉強も兼ねてハンズオン内容を参考にしつつ自分で作ってみました。
## この記事の目的
– 自身のやったことを整理して定着させる
– 共に音声アプリの概要を掴んでもらえたらなもしかしたらこの通りやっても動かないかもしれないので鵜呑みにしないでください。
※知識不足により誤っている部分がある可能性があります。その時は優しく指摘してください…## 参考資料
・「Google Nest Hub対応スマートディスプレイスキルを作ろう!【Vue.js】」(2020/1に大阪でも開催)
・Qiita[「滑舌チェックスキルをGoogle Nest Hublinux版 nodeとnpmとprettier
# まず確認
`Nodejs` ローカルでもjavascriptを使えるようにしたもの
`npm` パッケージ管理
`n` Nodejsのバージョン管理# aptからインストール
インストール先: /usr/bin/
`sudo apt install nodejs npm`# npmでnをインストール
インストール先: /usr/local/bin/
`sudo npm instal -g n`#n
nでインストールされるNodeの場所は以下になります。
`/usr/local/bin/`##インストール可能なバージョンを調べる
**最新の20件取得**
`n lsr`**すべて取得**
`n lsr –all`##nodeインストール&削除&バージョン切り替え
**インストール**
`sudo n バージョン`**インストール済みNodejs一覧**
`n ls`**バージョン切り替え**
`sudo n バージョン`**削除**
`n rm バージョン`##ヘルプ
`npm help npm`
`n help`#npm
##npmVSCodeのREST ClientでCognitoを利用するためのツールを作ってみた
# はじめに
皆さんはVisual Studio Codeの拡張機能の一つの[REST Client](https://marketplace.visualstudio.com/items?itemName=humao.rest-client)は利用していますか?
VSCode上でREST APIを呼び出すツールとして人気があると思います。
しかし、このツールではOAuth2.0がサポートされおらず、Cognitoで認証し、APIをコールすることが現時点ではできません。(2019年12月14日時点)
また、似たツールとしてPostmanが有名ですが、あちらはCognitoで認証してAPIをコールすることができますが、私は次の点でPostmanを利用せずにREST Clientを利用しています。– テキストベースでAPIを定義することができるので、Gitで管理することができる。
Gitで管理することで、APIも変更があった場合もそのバージョンでコールするための情報が残っているので、APIのバージョンごとの呼び出しデータを管理する必要がなくなるのは大きかったです。
## 実装方法
axiosのヘッダーのconfigでちょっとハマった
某APIを試しててaxiosのconfig指定をミスってたので、自戒の意味を込めて残しておきます。
完全に自分用メモっぽいやつです。
## ミスったコードなど
“`js
//省略
class Hoge {
constructor() {
//省略
}//ミスった方
methodA(IMAGE_PATH){
const file = fs.createReadStream(IMAGE_PATH);
const form = new FormData();
form.append(‘image’, file);
form.append(‘entrance’, ‘detection’);const config = {
‘X-ClovaOCR-Service-ID’: this.SERVICE_ID,
…form.getHeaders()
};NodeでLINE Botを扱うには
この記事はNode.jsアドベントカレンダーの13日目の記事です。
どうも!ハムカツおじさんという名前でtwitterやってます([@hmktsu](https://twitter.com/hmktsu))?
自分でだったり弊社でだったりなどNode.js(TypeScript)を使ってサービスを作っています。## はじめに
現在とあるデータを毎回取得して、その中に特定の文字列ならびに新規データが存在しているならば、LINE Botを使って自分に通知をするというツールを作って運用をしています。
とある商品群のデータがリアルタイムに欲しいので作りました。
Slackを使って通知するという形でも問題はないのですが、エンジニアだけがそのサービスを使いたいわけではない、ましてや普通の人でもという考えがあるので、LINE Botを使うことにしました。ということで今回はLINE Botを使って通知を自分に送ってみようという内容を書きたいと思います。
なお**LINE Botを使うための登録云々については割愛**させていただきます?♂️## LINE Botを無料で使いたい
基本Node.js v12でnode-gypでのビルドが通らない場合、v10をインストールすればよい
Node.js v12@Windowsでnode-gypを用いたビルドで以下のようなエラーが出る場合、v10をインストールすればビルドできます
※この例では`winapi`のビルドで失敗の例v12ではnode-gyp v5.0.5が強制インストールされてしまうことに由来したエラーと睨んでいます。
※なお、MSBuild Toolの2015,2017,2019いずれでもv12ではうまくいきませんでした“`
gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\MSBuild.exe` failed with exit code: 1
gyp ERR! stack at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:194:23Node.jsでローカルにある複数の画像をディレクトリを分けつつリサイズする
ディレクトリ毎に分けた複数の画像を一度にリサイズするべく、スクリプトを書きました。
元の画像の縦横比が全て揃っており、リサイズする画像も元の画像の縦横比を保ったままにすることを前提としています。## 環境
* MacOS
* Node.jsのバージョン・・・12.8.1
* npmのバージョン・・・6.10.2### 前提
以下がインストール済みであることを前提としています。
* Node.js
* npm(又はyarn)## ディレクトリ構造
“`
├── node-extensions
│ └── sharp.js ← 実行するスクリプトファイル。
├── node_modules/
├── package.json
├── src
│ ├── images
│ │ ├── gallery
│ │ │ ├── l ← 元の画像を入れるディレクトリ。この下に年月毎のフォルダを作成。
│ │ │ └── s ← リサイズ後の画像を入れるディレクトリ。スクリプト実行後に生成。
“`## パッケージのインストール・スクリ
Ubuntuにインストールしたyarnが実行できない
# Ubuntuにインストールしたyarnが実行できない
Ubuntu 16.04に最新のyarnをインストールした際、yarnコマンドを実行すると以下のようなエラーが発生しました。“`
$ yarn -v
/usr/share/yarn/lib/cli.js:46099
let {
^SyntaxError: Unexpected token {
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17ローカルPCのNode.jsでaws-sdkの認証を通す
## はじめに
ローカルPCでAWSの色々なサービスを操作するツールを作りたいときに、
認証が通せず苦労しましたが、この方法で通せるようです。ファイルなんか作らずにメモリ内に閉じたかったのですが、無理そうでした。
## 認証を通すコード
“` dynamo-utility.ts
import AWS = require(‘aws-sdk’);
import Fs = require(‘fs’);export class DynamoUtility {
dynamoDb: AWS.DynamoDB;
documentClient: AWS.DynamoDB.DocumentClient;constructor(credential: any) {
const tmpFile = ‘./credential.json’;
// 認証ファイルを生成
Fs.writeFileSync(tmpFile, JSON.stringify(credential));
// 生成したファイルを読み込ませる
AWS.config.lo関連する記事
OTHERカテゴリの最新記事
-
- 2024.09.19
JavaScript関連のことを調べてみた
-
- 2024.09.19
JAVA関連のことを調べてみた
-
- 2024.09.19
iOS関連のことを調べてみた
-
- 2024.09.19
Rails関連のことを調べてみた
-
- 2024.09.19
Lambda関連のことを調べてみた
-
- 2024.09.19
Python関連のことを調べてみた