- 1. 最速で画像を圧縮するAlfred Workflowを作った
- 2. Node.js: Lambda で MariaDB のデータを削除 (Delete)
- 3. Node.js: Lambda で MariaDB のデータを更新 (Update)
- 4. Node.js: Lambda で MariaDB のデータを読む (Read)
- 5. Node.js: Lambda で MariaDB のデータを作成 (Create)
- 6. [質問]jsで取得したデータをデータベースに保存する方法
- 7. [Express]DBのデータを利用しつつイベントハンドラの実行、関数の定義・実行をする
- 8. JavaScript SDK (SQL API)を見てみる (Part.3)
- 9. javascriptのオブジェクトをループさせる
- 10. Ubuntu で Node の最新版を使う
- 11. npm installでインストールできるモジュールを作るまでの流れについて
- 12. 【2020年6月版】VSCodeでTypeScript + Nodeプロジェクトをデバッグする
- 13. MEANスタックの一歩前。Angular と Express の連携
- 14. ESLint v7.2.0
- 15. JavaScriptの勉強
- 16. Slack API×AWS Lambda×Node.jsで作るチャットボット開発
- 17. Nodeのバージョンを12に上げたら`Cannot find module ‘@babel/compat-data/corejs3-shipped-proposals’`というエラーが出て困った
- 18. iOSネイティブアプリでalgoliaを使ってみる
- 19. AWS LAMBDAでLINE BEACON動かしたいが、どうするの?
- 20. Node.js の Lambda 関数を ローカルでテストする (その2)
最速で画像を圧縮するAlfred Workflowを作った
# はじめに
PNGやGIFの圧縮は、ブログ記事やGitHubのPull Requestの実行画像貼り付けとかで割とあります。自分は[TinyPNG](https://tinypng.com/)や[iLoveIMG](https://www.iloveimg.com/ja) を利用していましたが、プラウザを開きファイルをアップロード・圧縮しダウンロードという手順が毎回面倒でした。
なので、[alfred-imagemin](https://github.com/kawamataryo/alfred-imagemin) という**PNG / JPEG / GIFを手軽に圧縮するAlfred Workflow**を作ってみました。
(GIFでも使えるというのが嬉しいポイントです)この記事ではalfred-imageminの概要と、仕組みを紹介します。
![May-25-2020 06-44-34.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114396/e84ddf06-bf74-76d7-5e
Node.js: Lambda で MariaDB のデータを削除 (Delete)
フォルダー構造
“`text
$ tree -a
.
├── .env
├── function_update.sh
├── index.js
└── test_local.js
“`“`js:maria_delete/index.js
// —————————————————————
// maria_delete/index.js
//
// Jun/07/2020
//
// —————————————————————
var mysql = require(‘mysql2/promise’)// —————————————————————
async function main(id_in)
{
console.error(“id_in = ” + id_in)
const host = `${proc
Node.js: Lambda で MariaDB のデータを更新 (Update)
フォルダー構造
“`text
$ tree -a
.
├── .env
├── function_update.sh
├── index.js
└── test_local.js
“`“`js:maria_update/index.js
#! /usr/bin/node
// —————————————————————
// maria_update/index.js
//
// Jun/07/2020
//
// —————————————————————
var mysql = require(‘mysql2/promise’)// —————————————————————
function get_current_date_proc ()
{
const today = new Date ()
var
Node.js: Lambda で MariaDB のデータを読む (Read)
フォルダー構造
“`text
$ tree -a
.
├── .env
├── function_update.sh
├── index.js
└── test_local.js
“`“`js:maria_read/index.js
// —————————————————————
// maria_read/index.js
//
// Jun/08/2020
//
// —————————————————————
‘use strict’// —————————————————————
async function read01 (mysql,host,user,password,data_base)
{
try {
console.error (“*** read01 *** start ***”)
Node.js: Lambda で MariaDB のデータを作成 (Create)
フォルダー構造
“`text
$ tree -a
.
├── .env
├── function_update.sh
├── index.js
└── test_local.js
“`“`js:maria_create/index.js
// —————————————————————
// maria_create/index.js
//
// Jun/07/2020
//
// —————————————————————
var mysql = require(‘mysql2/promise’)
// —————————————————————
function dict_append_proc (dict_aa,id_in,name_in,population_in,date_mod_in)
{
var uni
[質問]jsで取得したデータをデータベースに保存する方法
###前提・実現したいこと
・自身プログラミング経験が浅いため、お伝えする内容に不備や、漏れがあれば
ご指摘いただいても大丈夫です###[実現したいこと]
・amazonの商品をスクレイピングで、家電の商品の価格を抽出した情報を
データベースを使用して保存したい####発生している問題
####[現状]
・ターミナルにて、npm i puppeteer
puppeteerをインストール
・プロジェクトのディレクトリ内に、test.jsamazonのサイトまでは、いきデータは抽出できているかと
思うのですが、その先が、
どう対応すればいいのかわからず、進めることができません。データベースは、MySQLを予定しております。
該当のソースコード
・test.js
const puppeteer = require(“puppeteer”);
(async () => {
const browser = await puppeteer.launch({
headless: false, // 動作確認するためh
[Express]DBのデータを利用しつつイベントハンドラの実行、関数の定義・実行をする
# はじめに
所有する技術書を登録(追加)、内容の更新、削除するWebアプリケーションを実装した。
そこから、削除機能について「本当に削除していいですか?」という確認を行うプロセスを追加したかった。
# 作ったのはどんなアプリなの
まだまだ拡張の余地はあるが、現時点での完成形を紹介する。
DBに登録されているデータを表示しているが、それを削除する様子。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/549712/34ddf84f-62ce-1848-9772-fce0fd28ffb0.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/549712/c363bf40-44aa-45c6-fef8-9c9138d8b54d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com
JavaScript SDK (SQL API)を見てみる (Part.3)
![th.jpeg](https://www.bing.com/th?id=OIP.yovZnkelJ4W3sSoRk-oQtwHaD4&pid=Api&rs=1)
# この記事について
本記事は、2020年3月6日 (米国時間) にて、Azure Cosmos DB に新しく Free Tier (無償利用枠) が登場したことに伴い、改めて Azure Cosmos DB を色々と触っていく試みの 5 回目です。
今回も、[前回記事][PrevLink2] 同様、 Microsoft Azure Cosmos JavaScript SDK について見ていきたいと思います。– [2020年から始めるAzure Cosmos DB – JavaScript SDK (SQL API)を見てみる (Part.1)][PrevLink1]
– [2020年から始めるAzure Cosmos DB – JavaScript SDK (SQL API)を見てみる (Part.2)][PrevLink2]# 対象読者
– Azure Cosmos DB について学習したい方
– N
javascriptのオブジェクトをループさせる
javascriptで結構需要がある処理だと思われるオブジェクトのループについてです。
## オブジェクトは`forEach`できない
`forEach`は配列に対して動作するので“` js
let obj = {
name: ‘Jhon’,
age: 20,
message: ‘Hello’
}
“`
上記のようなオブジェクトは
`obj.forEach(e => {})`とするとエラーになります。## どうするか
`Object.keys()`ってのを使います。“` js
let obj = {
name: ‘Jhon’,
age: 20,
message: ‘Hello’
}Object.keys(obj).forEach((e) => {
console.log(e)
console.log(obj[e])
})
“`こうすることで`e`に`name`、`age`、`message`とキーが入ってきます。
なので`obj[e]`としてやれば値が取得できます。
また`forEach`の第二引数を使って“
Ubuntu で Node の最新版を使う
Ubuntu に Node の最新版を入れる方法です。 WSL2 の Ubuntu 20.04 で試しました。
### PPA の追加、nodejs / npm のインストール
[NodeSource Node.js Binary Distributions](https://github.com/nodesource/distributions) のインストール手順に従って、PPAを追加します。
apt-get コマンドで nodejs を入れます。 npm コマンドも入るみたいです。“`bash
$ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash –
$ sudo apt-get install -y nodejs
“`npmモジュールでnative ビルドが必要なケースに備え、あらかじめビルドツールも入れておくと良いでしょう。
“`bash
$ sudo apt-get install -y build-essential
“`### 確認
シェルを再起動します。“`
$
npm installでインストールできるモジュールを作るまでの流れについて
# はじめに
npmでインストール可能なモジュール(パッケージ)のなるべく最小構成の作成方法が中々見つからなかったので、簡単にまとめました。
# 環境
– Node.js 12.16
– npm 6.14# ファイル構成
npmパッケージには、1つのディレクトリ内にモジュールのソースコードセット、`package.json`、エントリーポイントとなるjsファイル(今回は`index.js`とする)の3種類が必要となる。今回の例としては、ディレクトリをmodtest、モジュールのソースコードをサブディレクトリlibの配下に2種類(hello.js, hello2.js)、index.jsとします。
– modtest/
– lib/
– hello.js
– hello2.js
– index.js
– package.json# モジュールの作成
## 1. ディレクトリ作成
空のディレクトリ(今回はmodtest)を作成しておきます。## 2. package.jsonの作成
空のディレクトリへ移動し
【2020年6月版】VSCodeでTypeScript + Nodeプロジェクトをデバッグする
## TL;DR
[devinoue/typescript-node-project](https://github.com/devinoue/typescript-node-project)
こちらからご使用ください。## インストール
### よく使うパッケージのインストール基本的なパッケージを入れます。
“`shell
yarn add -D ts-node ts-node-dev typescript @types/node
“`以下のような内容になっています。
| パッケージ名 | 役目 |
| ———— | ———————————————————— |
| ts-node | tscを使ってプリコンパイルなしにTypeScriptを実行するnpmパッケージ。
typescriptコンパイラはバンドルされていないので、別にインストー
MEANスタックの一歩前。Angular と Express の連携
# 始めに
最近MEANスタックの学習をしており、Angularのチュートリアルにある「Tour of Heroes」を一通りこなしました。
Express サーバも、それ自体は構築できたのですがAngularと連携させようとすると途端に難しかったため、記事にして残しておこうと思います。「Tour of Heroes」をAngularのサイトからダウンロードする所から始めたいと思います。
# 開発環境
開発環境を統一しておくことは重要だと思います。
私はWindows10でVisual Studio Codeを使用しています。
コマンドはWindowsのコマンドプロンプトから行います。## Node.js
Node.js は[こちら](https://nodejs.org/ja/)からダウンロードします。
私は V12.16.3 を使用しました。# Visual Studio Code
エディタは何でも良いのですが、Visual Studio Codeは[こちら](https://azure.microsoft.com/ja-jp/products/visual-stud
ESLint v7.2.0
前 [v7.1.0](https://qiita.com/mysticatea/items/46c93f13776b24b9d1b9) | 次 (2020-06-20 JST)
ESLint v7.2.0 has been released!https://t.co/8dSO0Hc5X7
— ESLint (@geteslint) June 6, 2020
ESLint `7.2.0` がリリースされまし
JavaScriptの勉強
#NODE.JS
これまでPYTHONオンリーでやってきたが、最近はNODE.JSを触り始めている。NODE.JSについては、周辺のライブラリを組み合わせて
簡単に何でも作ってしまうというのが非常に優れている印象。PYTHONはFLASK,DJANGOというフレームワークと
PANDAS,AI関連のライブラリがもてはやされているが
node.jsもPYTHONと同じようなところを
目指しているような気がする。JAVASCRIPTと言えば、これまではWEBのフロント中心であるが、
最近はバックエンドのサーバー側も作れるのであるから、
学習コストは少しは減る
(といっても、PYTHONを新規でやるのと、対して労力は変わらないが)一点だけ、pythonより優れると思うのは、
ELECTRONでアプリケーションが作れることこれはVS-CODEでも、お馴染みで結構さくさく動かせる
(その根底のデザイン技術は、WEBベースでいいらしい)そうなってくると、これは完全にマイクロソフトの.NETと
違った世界感になってくる。もちろんC#や、.NETが使えることは、マイクロソフ
Slack API×AWS Lambda×Node.jsで作るチャットボット開発
# Slack API×AWS Lambda×Node.jsで作るチャットボット開発
Slack APIをLambdaと組み合わせると、様々なことができます。
「スマホからも操作できるSlackで、Lambda関数を実行できる」というだけで、その応用範囲は多岐にわたります。今回、SlackとLambdaを使ってチャットボットのサンプルを作る機会があったため、そこで得た知識をまとめ、手順化してみました。
この内容を理解することで、以下のようなことができます。– Slackのワークスペースにボットを配置する。
– ボットにDMを送ると、AWSのLambda関数を実行するように設定する。
– Lambda関数の処理で、Slackのワークスペースにメッセージを投稿する。細かく手順を作ったので、初心者も手を付けやすいと思います。
ぜひここで基礎部分を学んでから、自分のやりたいことに応じて調べてみてください。第9節までありますが、基礎の部分は4節までですし、アカウント作成などが無ければ1章あたり20分くらいでできると思います。
# 目次
– [概要](#概要)
– [シス
Nodeのバージョンを12に上げたら`Cannot find module ‘@babel/compat-data/corejs3-shipped-proposals’`というエラーが出て困った
Nodeのバージョンを12に上げた際、`Cannot find module ‘@babel/compat-data/corejs3-shipped-proposals’`というエラーが出たので解決法をメモ
結論
@babel/coreと@babel/preset-envのバージョンを以下に指定したら解消された。
“@babel/core”: “^7.9.0”,
“@babel/preset-env”: “^7.9.0”,参考にしたリンク
https://github.com/storybookjs/storybook/issues/10477
iOSネイティブアプリでalgoliaを使ってみる
#なぜalgolia?
アプリなら大体ついてる機能、「キーワード検索」。アプリ側にデータを持たせてfilterやsortを使うのは、めちゃめちゃスペックが落ちるので絶対に避けたいです。
ネイティブアプリのエンジニアであれば、Firebaseを愛用している方も多いかと思いますが、Firebaseでサポートされていないのがクエリの「全文検索」です。指定したキーワード通りの単一・複数ドキュメントをとってきたり、ソートのクエリを追加したり、indexをふるなどはできますが、全文検索はサポートされていません。そこで、公式ドキュメントが推奨する「algolia」を使って、全文検索機能を補填しようと思います。
#作るものイメージ
アプリからFirestore
AWS LAMBDAでLINE BEACON動かしたいが、どうするの?
AWS LAMBDAでLINE BEACON動かしたいが、どうするの?
誰か教えて〜!!!!今BOTまで完成し、次はビーコンをやってみようとしてるのだがうまくいかない。。。
LAMBDAの中身はこんな感じです!
どうやったらビーコンってから返事帰ってくるの〜???
‘use strict’
const line = require(‘@line/bot-sdk’)
var event
var context
var callbackexports.handler = (_event, _context, _callback) => {
event = _event
context = _context
callback = _callback
main();
};var main = function () {
const client = new line.Client({
channelAccessToken: ”
})// define default response wh
Node.js の Lambda 関数を ローカルでテストする (その2)
AWS のコンソールから、ダウンロードして解凍した index.js を実行する方法です。
![download_package.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/76c27478-5268-866a-d4a9-87b25557fa1f.png)
フォルダー構造
“`text
$ tree example01/
example01/
├── index.js
└── test_local.js
“`“`js:index.js
exports.handler = async (event) => {
// TODO implement
console.error(“***** start example01 PM 18:49 ***”)
var rvalue = {}
rvalue[‘key1’] = parseInt(event[‘key1’],10)
rvalue[‘key2’] = parseInt(event[‘k