- 1. GAEでNode.jsを使ってHello Worldをするまで
- 2. Firebase Authentication 匿名ログイン 成果物URL:https://tokumei.netlify.app
- 3. API Endpointのエントリポイント・コードの書き方
- 4. ちょっと古いBraviaもHey! Siriで操作できるようにする。
- 5. Express 入門
- 6. nvmをインストールしたのに、-bash: nvm: command not foundになる。
- 7. npmのライブラリの比較と評価方法:npm trends & Github
- 8. 【第4回】「みんなのポートフォリオまとめサイト」を作ります~フロントエンド編~ 【Cover】成果物URL: https://minna.itsumen.com
- 9. 【第3回】「みんなのポートフォリオまとめサイト」を作ります~SNSログイン編~ 【Cover】成果物URL: https://minna.itsumen.com
- 10. Node.js Ⅲ
- 11. Node.js Ⅱ
- 12. Eclipse 2020-06 で、“Node.js version could not be determined” と言われる件
- 13. json-serverでstaticを指定してもプレビューのページを表示する
- 14. Serverless Framework でエラーを検知して Webhook で Slack に通知を飛ばす方法
- 15. 【第2回】「みんなのポートフォリオまとめサイト」を作ります~REST API編~ 【Cover】成果物URL: https://minna.itsumen.com
- 16. Static Web Appsでは現状TimerTriggerは使えないっぽい
- 17. SAP Cloud Platform 上で WebSocket を使ってみた
- 18. Node.jsⅠ
- 19. ytdlでYoutubeダウンロード+Macでファイル変換&編集
- 20. 【JS】Node.js と GoogleSpreadsheet で業務効率化
GAEでNode.jsを使ってHello Worldをするまで
GAEを使って、Node.jsのHello Worldを行った際の備忘録。
と言っても、Googleの公式ドキュメント通りに行えば大体大丈夫でした。
たまに詰まっても、ググれば出てきたって感じでした。ではさっそく。
#GAEとは
Google App Engine の略。
Google Cloud Platform の一部。
Google のサーバーを借りてwebアプリ等を公開できる。#公式ドキュメントを参考にやってみる
まずは、こちらの手順に従う。
スタンダード環境で Node.js を使用するためのクイックスタート
https://cloud.google.com/appengine/docs/standard/nodejs/quickstart#local-machine_1以下、躓いたところの対処法を残しておく。
“3.リージョンを選択“
東京なら asia-northeast1 だ。
https://cloud.google.com/about/locations?hl=ja#locations![スクリーンショット_081920_084150_P
Firebase Authentication 匿名ログイン 成果物URL:https://tokumei.netlify.app
## 成果物
https://tokumei.netlify.appワイ 「ログイン後Firebaseから**寿命が1時間のJWTトークン**が取得できる」
ワイ 「現実的な使い方をするなら」
ワイ 「**JWTトークン**を自分が使ってるオリジンサーバに送って改ざんされていないかチェックする」
ワイ 「ライブラリは**firebase-admin**を使う」## トークンが改ざんされていないかチェックするソース
“`package.json
{
“dependencies”: {
“firebase-admin”: “^9.1.0″
}
}
“`“`index.js
const admin = require(‘firebase-admin’);// 各自用意
const firebaseConfig = {
type: ”,
project_id: ”,
private_key_id: ”,
private_key: ”,
client_email: ”,
client_id: ”,
auth_uri:
API Endpointのエントリポイント・コードの書き方
API Gatewayとかから飛んできたリクエストをLambdaでいい感じに処理する、よくあるバックエンドコード
この辺のいい感じの記述を模索してて最近こんな感じになっています。## 最近の自分の書き方
“`js
/**
* フォーマットに関してはこいつに任せる。
*/
const run = async(event, hoehoe) => {
// どでかいtry-catchで例外をアプリ内に封じ込める
try {
// 悩むけどこの辺の情報はこっちでいいかな
const name = event.pathParameters.name;// 処理は極力別クラスに任せる
const service = new Service(hoehoe);
const pet =service.getPet(name);// 仕様と対応するので正常系の出口は一箇所
return getSuccessResponse({
color: pet.color.value,
size: pet.si
ちょっと古いBraviaもHey! Siriで操作できるようにする。
##はじめに
ほんの少し前のことなんですが。
長年使ってたテレビが遂に壊れてしまったんですよ。地デジが始まる頃に買った『KDL-40X5000』って言うソニーのテレビ。
テレビが映らないのは困るなあってんで、すぐに買いに行ったんです。そしたらこの10年ちょっとで、テレビってえらい進化しているんですね。薄く軽くなったのはもちろん、ベゼルが小さくなったんですよ。なので、設置面積はほとんど変わらずだいぶ大きなテレビを置けました。
今回買ったのは**『KJ-49X8500F』**です。
Android TVなんですねー。
YouTubeとか見られるんですねー。
あこがれの4Kですよー。
画が綺麗になりましたねー。
画面も大きくなりましたよー。
と大満足。そこにニュースが。
「[ソニーのAndroid TVがAirPlay 2とHomeKitをサポート](https://japanese.engadget.com/jp-2019-12-04-android-tv-airplay-2-homekit.html?guccounter=1&guce_referrer=aHR0cHM6Ly93d3c
Express 入門
公式ドキュメントもかなりシンプルでわかりやすいですが、自分用メモとして。
[Express(日本語ドキュメント)](https://expressjs.com/ja/)## 最小構成
最低限、これで動かせるよ!というコードです
さくっとWebサーバ立ててなにか試したい時に### インストール
“`bash
$ mkdir myapp
$ cd myapp
$ npm init # entry point: app.js => 任意のファイル名
$ npm install express
“`### ディレクトリ構成
“`
(root)
├ package.json
├ package-lock.json
├ app.js
└ node_modules
“`### コード
“`js:app.js
const express = require(‘express’)
const app = express()app.get(‘/’, (req, res) => res.send(‘Hello World!’))
app
nvmをインストールしたのに、-bash: nvm: command not foundになる。
https://github.com/nvm-sh/nvm#install–update-script
こちらの“`
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
“`を使ってnvmをインストールし、特にエラーもなく完了したはずなのに
“`
$ nvm –version
“`
で
-bash: nvm: command not found
と言われた。色々試した結果、
“`
$ source ~/.nvm/nvm.sh
“`
を実行することで解決。頑張った末に、手順の下の方に”Troubleshooting on macOS”を見つけたので、ドキュメントを読むのが大事だと思いました。
追記(2020年8月21日)
このままだと、起動のたびに同じコマンドを叩かないといけなかったので、起動のたびに有効化してくれるように、/etc/profile.d/以下にシェルを置いておきます。
>/etc/profile.d/nvm.sh“`
npmのライブラリの比較と評価方法:npm trends & Github
# 人気のあるライブラリをnpm trendsで探す
**[npm trends](https://www.npmtrends.com/)**は、指定したライブラリのカテゴリと近いものを提示し、選択するとダウンロード数を比較してくれます。
たとえば、dom parserを比較すると以下の用になります。[npm trends: dom parserの比較](https://www.npmtrends.com/dom-parser-vs-cheerio-vs-htmlparser2-vs-parse5-vs-scraper-vs-xml2js-vs-xml-js-vs-fast-xml-parser-vs-xml2json-vs-jsdom)
![screencapture-npmtrends-dom-parser-vs-cheerio-vs-htmlparser2-vs-parse5-vs-scraper-vs-xml2js-vs-xml-js-vs-fast-xml-parser-vs-xml2json-vs-jsdom-2020-08-20-07_45_01.png](h
【第4回】「みんなのポートフォリオまとめサイト」を作ります~フロントエンド編~ 【Cover】成果物URL: https://minna.itsumen.com
ワイ 「この記事のカバーです」
https://qiita.com/kiwatchi1991/items/58b53c5b4ddf8d6a7053## バックナンバー
[【第1回】「みんなのポートフォリオまとめサイト」を作ります~プロトタイプ作成編~][1]
[1]:https://qiita.com/yuzuru2/items/045678d3c580028c1d4f[【第2回】「みんなのポートフォリオまとめサイト」を作ります~REST API編~][2]
[2]:https://qiita.com/yuzuru2/items/19592997737c8be2dafc[【第3回】「みんなのポートフォリオまとめサイト」を作ります~SNSログイン編~ ][3]
[3]:https://qiita.com/yuzuru2/items/be34b9286ce758c1e8c0## 成果物
https://minna.itsumen.com## リポジトリ
### フロントエンド
https://github.com/yuzuru2/minna_frontend###
【第3回】「みんなのポートフォリオまとめサイト」を作ります~SNSログイン編~ 【Cover】成果物URL: https://minna.itsumen.com
ワイ 「この記事のカバーです」
https://qiita.com/kiwatchi1991/items/58b53c5b4ddf8d6a7053## バックナンバー
[【第1回】「みんなのポートフォリオまとめサイト」を作ります~プロトタイプ作成編~][1]
[1]:https://qiita.com/yuzuru2/items/045678d3c580028c1d4f[【第2回】「みんなのポートフォリオまとめサイト」を作ります~REST API編~][2]
[2]:https://qiita.com/yuzuru2/items/19592997737c8be2dafc## 成果物
https://minna.itsumen.com## リポジトリ
### フロントエンド
https://github.com/yuzuru2/minna_frontend### バックエンド
https://github.com/yuzuru2/minna_backend## 構成
フロントエンド: **Netlify**(月間100GBまで転送量無料)
バックエンド: **N
Node.js Ⅲ
◆削除機能をつける 削除ボタンの準備
①ルーティングを用意
app.post(‘/delete’,(req,res) => {
処理
});②削除ボタンを用意
Eclipse 2020-06 で、“Node.js version could not be determined” と言われる件
# Eclipse 2020-06 で、“Node.js version could not be determined”
対象バージョンのnodeはインストールして、パスも通っているのに、eclipse起動時に下記の画像のメッセージが出る# Eclipseのバージョン
Eclipse IDE for Enterprise Java Developers (includes Incubating components)Version: 2020-06 (4.16.0)
# nodeのバージョン
“`
$ node -v
v10.17.0
“`# OS
![スクリーンショット 2020-08-19 10.58.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44351/86158d91-217a-cae2-97b1-693a05daf9db.png)# メッセージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.
json-serverでstaticを指定してもプレビューのページを表示する
## json-server
わたしは自分のことをxRアプリエンジニアだと思っていたのですが、最近はいろんなサーバをいっぱい立てています。
そのうちのモックサーバなんてjsonを返せればいいので[json-server](https://github.com/typicode/json-server)を使いました。> Get a full fake REST API with zero coding in less than 30 seconds (seriously)
が嘘じゃないすごいやつです。
あと、たのしい顔文字がいっぱい出力されます。## `–static`の罠
![2020-08-08 02.02.01 localhost 65269d951fd9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146245/69386e82-39ff-5445-5b3b-e32ce7ba552e.png)
[http://localhost:3000](http://localhost:30
Serverless Framework でエラーを検知して Webhook で Slack に通知を飛ばす方法
#はじめに
AppSync の Lambda リゾルバを書く際に [Serverless Framework](https://www.serverless.com/) を使用したのですが、
デプロイ後のバグ調査の際、毎回ブラウザから AWS Console を開いて該当 Lambda の CloudWatch のログを見に行くのが面倒でした。。 :upside_down:そのため、エラーレポートの仕組みが欲しくなり、Lambda のエラーを Slack に通知する仕組みを Serverless Framework で実装する方法について調査したので、備忘録も兼ねて記事にまとめました :writing_hand:
追記 (2020/08/19)
ローカルから Lambda 関数のログを確認したいだけなら、Serverless Framework CLI の [logs コマンド](https://www.serverless.com/framework/docs/providers/aws/cli-refer
【第2回】「みんなのポートフォリオまとめサイト」を作ります~REST API編~ 【Cover】成果物URL: https://minna.itsumen.com
ワイ 「この記事のカバーです」
https://qiita.com/kiwatchi1991/items/58b53c5b4ddf8d6a7053## バックナンバー
[【第1回】「みんなのポートフォリオまとめサイト」を作ります~プロトタイプ作成編~][1]
[1]:https://qiita.com/yuzuru2/items/045678d3c580028c1d4f## 成果物
https://minna.itsumen.com## リポジトリ
### フロントエンド
https://github.com/yuzuru2/minna_frontend### バックエンド
https://github.com/yuzuru2/minna_backend## コレクション定義(テーブル定義)
ワイ 「今回は**NoSQL**の**MongoDB**を使ってます」
ワイ 「コレクションとは**RDB**でいう**テーブル**的なやつです」| RDB | MongoDB |
| —- | —- |
| スキーマ | データベース |
|Static Web Appsでは現状TimerTriggerは使えないっぽい
[Azure Functions のタイマー トリガー](https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-bindings-timer?tabs=javascript)を使ってStatic Web Appsに紐づいたAPIプログラムもタイマー実行できないかと思いましたがどうやらできないっぽいのでメモ。
ビルドでこんなコケかたします。
“`
Error in processing api build artifacts: the file ‘myTimer/function.json’ has specified an invalid trigger of type ‘timerTrigger’ and direction ‘in’. Currently, only httpTriggers are supported. Visit https://github.com/Azure/azure-functions-host/wiki/function.json for more informatioSAP Cloud Platform 上で WebSocket を使ってみた
# はじめに
この記事は [chillSAP 夏の自由研究2020](https://note.com/chillsap/n/n66e12ef65d11?fbclid=IwAR3REd19CLNDvQHZDNjQaE_2Cki4bqGln4pVk7UJjHYEq39yUtF_5Xch1BQ) の記事として執筆しています今回は、 SAPUI5 の API Reference を眺めていると WebSocket( [sap.ui.core.ws.WebSocket](https://sapui5.hana.ondemand.com/#/api/sap.ui.core.ws.WebSocket) )のライブラリを発見したので試してみました。
## WebSocket とは?
>WebSocket(ウェブソケット)は、コンピュータネットワーク用の通信規格の1つである。ウェブアプリケーションにおいて、双方向通信を実現するための技術規格である。2011年にRFC 6455として>最初の標準仕様が定義された。[転載:WebSocket – Wikipedia](https://ja.wi
Node.jsⅠ
◆Expressを導入する
$ npm install express →入力してenter
nodejs_lesson@1.0.0/home/..
express@4.17.1 →入力結果◆インストールしたExpressを利用する
const express = require(‘express’) ;
const app = express();◆listenメソッド
app.listen(3000);
『ターミナル』
$ node.app.js →app.jsをターミナルを実行する
ファイルを実行するには「node ファイル名」とします。◆ルーティング
app.get(‘/top’, (req,res) => {
トップ画面を表示する処理
});![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/635497/d17d86cf-226e-33af-9541-b7a1626e02bb.png)
ルーティングの処理でres.renderと書くことで、指定したビュ
ytdlでYoutubeダウンロード+Macでファイル変換&編集
もう、無限に広告がポップしてくる詐欺ソフトに悩まされることはありません。
我々エンジニアはプログラミングとCUIという頼れる味方がいます。## この記事を読むと
– ターミナルから簡単&爆速にYoutubeから動画をダウンロードできます。
– ファイル形式の変換と時間指定の切り抜きのお勧め方法もカバー## 環境
– Macbook Pro 2017 13インチ
– MacOS Catalina ヴァージョン10.15.6## やり方比較
### 没案1.Youtube Premium
最も簡単にYoutubeの動画をオフラインで利用する方法はYoutube Premiumに登録することです。料金も月1000円程度と破格。
しかしなんでYoutube Premiumではダメなのかというと、PCのローカルに落とせないからです。例えば、私の場合は英語音声のみで字幕無しの動画に対して、Amazon Transcribeを利用して文字起こしや翻訳を行うのがそもそもの動機でした。また、スマホアプリ上でしかオフライン利用できません。
やはり普通のファイルとしてローカルに落とすのが【JS】Node.js と GoogleSpreadsheet で業務効率化
`google-spreadsheet` というパッケージを使用し、スプレッドシートへの書き込みの実装をしたので、その備忘録です。
[google-spreadsheet – npm](https://www.npmjs.com/package/google-spreadsheet)下記の記事をみておけばほぼわかります。
[【Node.js】 Googleスプレッドシートを簡易データベースとして使う – 一日一膳(当社比)](https://sonnamonyaro.hatenablog.com/entry/2020/03/01/222650)
[GoogleスプレッドシートからNode.jsでシフトデータを読み出す方法 – Twilio](https://www.twilio.com/blog/load-data-from-google-spreadsheet-jp)## 準備
### APIの有効化 & 認証
1. GoogleSpreadsheet API 有効化
2. サービスアカウントを発行
3. スプレッドシートに 作成したサービスアカウントを招待(メールアドレス関連する記事
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関連のことを調べてみた