- 0.1. Node.js: 接種状況ダッシュボードのデータを使ってワクチン接種済者をカウントする
- 0.2. [Stripe Updates] NoCodeでオンライン決済を受け付ける”Payment Links(支払いリンク)”に、管理用APIが登場しました!
- 0.3. CentOS系へのNodeJSインストール手順
- 0.4. yarnのインストール(Windows)
- 0.5. Pythonスクレイピング【GCP – cloud functions – サンプルコード付】
- 0.6. localサーバー(localhost)を立ち上げる
- 0.7. Notion API + LINE + AWS Lambda他でメモ内容をLINEにしゃべらせる
- 0.8. VSCode+Textlintで文章校正をする
- 0.9. CORS(オリジン間リソース共有)とは?
- 0.10. Webの勉強はじめてみた その25 〜Heroku編〜
- 1. Herokuとは
- 2. サーバーの作成
- 3. テンプレートエンジン
- 4. PUGを使う
Node.js: 接種状況ダッシュボードのデータを使ってワクチン接種済者をカウントする
こちらで行ったのと同じ計算を Node.js で行いました。
[Python3: 接種状況ダッシュボードのデータを使ってワクチン接種済者をカウントする](https://qiita.com/ekzemplaro/items/e892ab821eef343d4860)必要なライブラリーのインストール
“`bash
npm install csv
npm install date-utils
“`“`js:count_vaccination.js
#! /usr/bin/node
// —————————————————————
// count_vaccination.js
//
// Jan/26/2022
//
// —————————————————————
‘use strict’var fs = require(“fs”)
var csv = require(‘csv’)
requir
[Stripe Updates] NoCodeでオンライン決済を受け付ける”Payment Links(支払いリンク)”に、管理用APIが登場しました!
「コードを一切書かずに、クレジットカードをはじめとするオンライン決済を処理するリンクを作成する仕組み」として、Payment Links(支払いリンク)は2021年に登場しました。
https://stripe.com/jp/payments/payment-links
1度商品・料金を登録し[支払いリンク]を作成すれば、後はそのリンクを顧客に踏んでもらうだけで、商品の販売や定期会員の決済を行うことができます。
# これまでの[支払いリンク]でできなかったこと
これまでは、このリンクを作成するためにDashboardにアクセスする必要がありました。
そのため、以下のようなユースケースに対応することができませんでした。– WordPressやHubSpotといった外部サービス側で、リンク作成・埋め込み・表示を一元化したい
– アドホックに料金・商品を生成し、ユーザーに応じた支払いリンクを発行したい
– バッチ処理を利用した、「一定期間または特定時間のみ有効なリンク」を作成したい
– [Connect] 出店者が、顧客向けに支払いリンクを作成できるようにしたいhttps:/
CentOS系へのNodeJSインストール手順
# CentOS系へのNodeJSインストール手順
## nodejsインストール### repo追加
“`bash
curl -fsSL https://rpm.nodesource.com/setup_17.x | sudo bash –
“`### repo確認
“`bash
ls -1 /etc/yum.repos.d
nodesource-el8.repo <- 追加されている ``` ### nodejs インストール ```bash sudo yum install nodejs -y ``` ### インストール確認 ```bash node -v v17.4.0 <- バージョンが表示される ```
yarnのインストール(Windows)
# はじめに
以前、自分が使っている古い方のPCで、Reactを使おうと思ってyarnをインストールしたのですが、パスが通っていないのかコマンドが認識されず、yarnが実行できない。
思い切って新しいPC(Surface Pro8)の方でもう一度インストールしてみようと思って、再度挑戦しました。
ちなみにyarnとは、Facebook社(現メタ社)によって開発された、npmよりも処理が早いJavaScriptのパッケージ管理システムです。よくnpmの上位互換として紹介されているので、流行に乗って使えたほうが良いかなと奮闘中です。ReactもFacebookによる開発ですよね。Facebookはこの辺りの事情に精通しているのでしょうか。# 作業環境
PC: SurfacePro8
OS: Windows11
使用ターミナル: コマンドプロンプト
その他必要環境: node.js、npm# 手順
何はともあれ、まずは公式ドキュメント!ということで、yarnpkg.comのGETTING STARTED → Installationの手順を試してみることに。
最初に、「ya
Pythonスクレイピング【GCP – cloud functions – サンプルコード付】
##はじめに
普段は、firebase cloud functionsで
サーバー側の処理を記述しています。今回も、node環境のサーバーでスクレイピングを行なっていたのですが
処理に時間がかかる・メモリが多く必要になるという理由で
スクレイピングに関しては、python3で記述することにしました。ちなみに、nodeでのスクレイピングは下記のnpmを使用していました。
“`
npm i puppeteer
“`下記システムは、こちらのサイトでも使用しています。
https://yapoyapo.com/
#Pythonの記述・ディレクトリ構造
今回は、GCPのcloud functionsの方に
pythonのファイルをデプロイしたので、ディレクトリ構造の説明もしていきたいと思います。
#ディレクトリ構造
“`:ディレクトリ構造
pythonFunctions
├ main.py
├ getMetaFromSoup.py
├ requirements.txt
├ .gcloudignore
└ README.md
“`
localサーバー(localhost)を立ち上げる
以下のQiita記事の再現をするため、localサーバーを立ち上げようとしたが苦戦したため、手順について記載する。
https://qiita.com/engabesi/items/e08752d1341b7b2c6010
# Node.jsから起動
## ローカルサーバーを立ち上げる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2122226/b4f3dede-8f24-b462-716b-67e281bc16b3.png)
Node.js上で、`serve`と叩き緑の文字で`Serving!`と表示されたら成功。
`Local: http://localhost:~` をコピーして、エクスプローラーに張り付けて画面が表示(場合によっては白画面)になればOK。## ローカルサーバーを終了する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2122226/e53342c9-29
Notion API + LINE + AWS Lambda他でメモ内容をLINEにしゃべらせる
# 野望
相も変わらずNotionをDBに用いたLINE Bot的なものが作りたいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/455207/7acc353d-96ab-d5a0-8a5d-289b8e41e0c0.png)# 前回のあらすじ
Notion APIの前にまずはLINE Messaging APIの検証から始めました。
どうやら用意したLINE公式アカウントで受信したテキストをもとに応答をすることができるようになったっぽいです。
https://qiita.com/DJROU/items/900e3c32b87b5d43d8ed# 今回やったこと
いきなりNotionを繋げて読み込みと書き込みをできるようにするのは荷が重いので、LINE公式アカウントに対してユーザが送ったテキストをNotionで検索した結果を返せるようにしました。
指定したDBのキーに対する値がゲットできるところまでのお試しです。![image.png](https://qiita-im
VSCode+Textlintで文章校正をする
# はじめに
Visual Studio Code(VSCode)+textlintで文章校正をするための導入手順です。## 環境
* Windows11 64bit
* Visual Studio Code version 1.63
* Node.js v16.13.2
* npm 8.1.2
* textlint v12.1.0# textlintとは
文章を書く時に表記揺れや誤字脱字、読みにくい表現などを校正してくれるツールです。公式サイト
[textlint · The pluggable linting tool for text and markdown](https://textlint.github.io)Qiitaの記事の下書きを、VSCodeを使ってMarkdownで書くことが多いのですが、textlintを使用すれば自動で文章校正ができます。
![textlint_demo](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230850/7a6e4494-21af-4fa1-7
CORS(オリジン間リソース共有)とは?
# エラー発生
フロントエンドとバックエンドを通信させた時、このようなエラーが発生したことはありませんか?
![スクリーンショット 2022-01-24 15.56.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1801469/6114e564-627f-d8ca-cb20-6fdbc7168d06.png)
なんだかコードは間違ってなさそうだな、なんのエラーだろう、CORSって書いてある、、、と初見の人は思うと思います。# CORSって?
**CORS(Cross-Origin-Resource-Sharing)オリジン間リソース共有**
追加の HTTPヘッダーを使用して、あるオリジンで動作しているウェブアプリケーションに、異なるオリジンにある選択されたリソースへのアクセス権を与えるようブラウザーに指示するための仕組みです。ふむふむ、、、
オリジンとは?
何かしないとアクセス権がないのか?# オリジン
URLの「スキーム」「ホスト」「ポート」の3つの組み合わせたものです。
![ス
Webの勉強はじめてみた その25 〜Heroku編〜
N予備校「プログラミング入門Webアプリ」を受講しています。
今回は第3章17節です。Herokuとは
:::note
Heroku(ヘロク)とは、Web サービスを動かすことのできるプラットフォームを提供しているサービスのこと
:::Heroku CLI をインストールすると、`heroku`コマンドが使える。
サーバーの作成
下準備
Heroku へのログイン
`heroku login`
Dockerを利用するために Heroku Container Registory へログインする
`heroku container:login`Dockerfileに以下を追記。
今回は以前作ったhubotを登録してみる。“`Dockerfile
COPY . /home/praise-bot
CMD [“sh”, “run.sh”]
“``docker-compose`をしてマウントされていた処理を、herokuでは`Dockerfile`自体に記述。
`run.sh`に起動時の処理を書く。
“`she
pm2のインストールではまってしまった人へ
# 結論
お使いのyarn.lockやらpackage-lock.jsonを削除してみよう。
# どうしてこうなったか
インストール時にyarnがダメだったからnpmとかまたはその逆とかでインストールしていたなあ。という記憶が蘇ってきたので多分それ。
久々にAzure Functionsを触ろうとして出たエラーなど
久々にAzure Functionsを触ろうとして雰囲気だけしか覚えてなくエラーが出たので回避メモなど残しておきます。
## 基本の手順
https://fwywd.com/tech/azure-functions-basic
この記事どおりにハローワールドしようとしてます。
## Azure Functions Core Toolsのバージョンによるエラー
現時点でAzure Functionsで利用できるNode.jsは16系が最新っぽいので16系を使おうとしましたが以下のエラー
“`bash
・
・
・
Azure Functions Core Tools
Core Tools Version: 3.0.3233 Commit hash: d1772f733802122a326fa696dd4c086292ec0171
Function Runtime Version: 3.0.15193.0[2022-01-23T12:06:20.317Z] /usr/local/Cellar/azure-functions-core-tools@3/3.0
Angular Update 10 → 12のあれこれ事件簿
とあるPRJにて、Angular 10 → 12のUpdateの際にいくつかハマったので備忘録として残しておきます。
# ざっくり環境
Angular 10 → 12
Node.js 12.10 → 12.22
TypeScript 3 → 4
webpack 4 → 5
…その他もろもろ# 前提
・Angularのビルダーを変更
“`angular-devkit/build-angular → angular-builders/custom-webpack
“`# 地道なバージョンアップ対応
Angularのバージョンアップに伴いNode.jsのバージョンも最低限上げないといけないなどその辺りの依存関係の調整を地道に行い、TypeScriptのバージョンアップに伴う既存ソースの微修正など対応した。そこまではよかったのですが。。。# webpack 5系の罠
今回のAngularプロジェクトでは直接的にwebpackは使用していませんでしたが、custom-webpackなどAngularで使うパッケージにwebp
GitHub PackagesでNode.jsのDockerイメージを管理する
早いもので1月もあと10日ほどで終わりですが、今年の冬は寒くリモートワークが有り難くも感じています。
節分の頃には、春に向けて期待が膨らませられる出来事が増えますように。
さて、
今回はこちら[Managing Node.js Docker images in GitHub Packages using GitHub Actions](https://snyk.io/blog/managing-node-js-docker-images-in-github-packages-using-github-actions/)を紹介します。開発ですでにGithubは使っている方は多いと思いますが、node.jsのDockerイメージ管理についてのブログ記事の翻訳をご紹介いたします。
#GitHub Actionsを使ってGitHub PackagesでNode.jsのDockerイメージを管理する
リランタル
2021年7月13日
今日オープンソース開発を行っている場合は、GitHubコミュニティ内でアクティブになっている可能性が高く、オープンソースプロジェクトとそのリポジトリ
Webの勉強はじめてみた その24 〜テンプレートエンジン〜
N予備校の「プログラミング入門Webアプリ」を受講しています。
今回は第3章16節です。テンプレートエンジン
:::note
テンプレートと文字列とプログラムを組み合わせることで、 静的なユーザーインタフェースのデータである HTML を動的に出力できるライブラリのこと
:::静的なページに変数を入れてそれをベースにして動的なページにしようと言う認識。
PUGを使う
`Dockerfile`に記述
“`Dockerfile
RUN yarn add pug@2.0.4
RUN yarn global add pug-cli
“`雛形となる`form.pug`
“`pug
doctype html
html(lang=”ja”)
head
meta(charset=”UTF-8″)
title アンケート
body
h1 どちらが食べたいですか?
form(method=”post” action=path)
span 名前:
input(type=”text”
メモ:node.jsでブロックチェーンの基本を見る
node.jsでブロックチェーン周辺の基本を見ておくことにしたので、その記録。
[ここ](https://marsquai.com/745ca65e-e38b-4a8e-8d59-55421be50f7e/1f67fdab-8e00-4ae1-a1b9-077d5a30a5d6/c2b1e311-8654-41db-a4d1-4c419cae7830/)とか[ここ](https://note.com/strictlyes/n/n40e5884229a5)とか
を参考にした。# 準備
とりあえずtypescriptを入れる。
`npm install typescript @types/node`# ブロックチェーン
[予備知識](https://persol-tech-s.co.jp/corporate/security/article.html?id=69)nodeで作成している記事に従ってブロックとチェーンのコードを書いてみる。
微妙に自分の趣向で書き換えてるけど、ほぼそのままパクリ。ブロックは、前のブロックのハッシュ値+自分のデータでハッシュ値を作成するが、時
無料クラウドサービスでJupyter Labを使ってみる ~最小構成導入編~
## カスタマイズ可能で最新バージョンのJupyterを使うには?
### この記事の目的
無料で利用可能なJupyterアプリケーションといえば[Google Colaboratory](https://colab.research.google.com/)や[Watson Studio](https://dataplatform.cloud.ibm.com/)といったものがメジャーでよく知られていると思います。
初めから一通りのミドルウェアなどがセットアップされており、サインアップするだけで特に何の準備も必要なく、手間もかからずすぐに始めることができる優れたサービスだと思います。
その代わり、新たに使いたいライブラリを追加したり、作成したデータをファイルとしてクラウドに保存しても、基本的には永続化することはできず、サインアウトすると消滅してしまうという不便もあります。
また、ベースは[Jupyter Notebook](https://jupyter-notebook.readthedocs.io/)であり、より進化した[Jupyter Lab](https://jupy
Docker AmazonLinux2のコンテナにNode.jsを入れている部分の処理を紐解いてみた
# 概要
– 他の方が作ってくれたのLaravelアプリケーションローカル開発環境のAmazonLinux2コンテナにNode.jsを入れている部分の処理をまとめてみる
# Node.jsの入れている部分Dockerfile
– 下記のような処理をしている。
“`Dockerfile
RUN curl -fsSL https://rpm.nodesource.com/setup_14.x | bash –
RUN yum -y install nodejs && \
npm i -g n && \
n 14
“`– 理解しやすくするため&&と\で一行に記載されている部分を冗長だがRUNになおしてみる。
“`Dockerfile
RUN curl -fsSL https://rpm.nodesource.com/setup_14.x | bash –
RUN yum -y install nodejs
RUN npm i -g n
RUN n 14
“`
Node + TypeScript で MySQL に接続して Read, Write してみる
## 背景
node + TypeScript で MySQL に繋いで少しだけデータ操作をする場面があったのですが、あまり記事無くて苦戦したので備忘録として残しておきます。
## 実装方針
– O/Rマッパーのような大きいライブラリじゃなくても済む規模だったので [mysql](https://github.com/mysqljs/mysql) を使用して生クエリで対応
– コールバック地獄にならないようにしたい
– しっかりトランザクションはかけておきたい## バージョン
– node: v14.17
– mysql(ライブラリ): 2.18.1
– MySQL(DB): 5.7## 実装
### 接続
“`ts
import { createPool } from ‘mysql’;(async () => {
const pool = createPool({
host: process.env.MYSQL_HOST,
user: process.env.MYSQL_USER,
password: process.env.MY
pm2 deploy しようとしたが、「WARNING: UNPROTECTED PRIVATE KEY FILE!」でデプロイ出来なかった。
PM2デプロイコマンドを叩いたら、下記のようなエラーがでて、デプロイできなかった。
そうなった原因はわからない。数日前までは問題なくデプロイ出来ていたので…“`terminal
$ pm2 deploy production
–> Deploying to production environment
–> on host ***********○ deploying origin/master
○ executing pre-deploy-local
○ executing pre-deploy `git pull`
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for ‘/Users/***/.ssh/***.pem’ are