- 1. CAPとEvent Meshでメッセージを送受信する
- 2. スマレジのAPIを使うのに何度かハマった
- 3. Sequelizeを使用してトランザクション処理を行う
- 4. Azure App Service(Node Stack) に Webサービス(NestJS)をデプロイする方法
- 5. node.js超入門ノート1(Dockerでの環境構築編)
- 6. M1 Mac でRailsコマンドが使えなくなった時のメモ
- 7. node.jsのバージョン設定[Homebrew, nodebrew, node.js]
- 8. Sequelizeを使用してDBからデータを取得する時のメソッドが生成するクエリ
- 9. CHIRIMENをNode.jsで使用してみる⑴ ー 導入編 ー
- 10. Windows10のDocker×VSCode環境でReactを動かすまでの道のり
- 11. TeamsFx SDK で Microsoft Graph からTeams データを取得しよう
- 12. node.js + express + herokuを使って LineBotを作ろう。
- 13. ReplitでNode.js v16を使用する
- 14. LINE Pay APIを使った決済機能を作ってみた Node.js版 (Version3対応)
- 15. 【discord.js】v13でbotを作ってみる
- 16. 文字コードを指定してURLエンコードを行う(Node.js)
- 17. 【初心者向け】結局package.jsonって何なの?
- 18. AtCoder Beginner Contest 213 ~JavaScriptの練習~
- 19. 【個人開発/LINE Messaging API】Node.js, TypeScriptで現在地から美味しいお店を探すアプリを作ってみた(②)
- 20. 【個人開発/LINE Messaging API】Node.js, TypeScriptで現在地から美味しいお店を探すアプリを作ってみた(①)
CAPとEvent Meshでメッセージを送受信する
#はじめに
この記事は [chillSAP 夏の自由研究2021](https://note.com/chillsap/n/n08ef5ec73b4c) の記事として執筆しています。[前回](https://qiita.com/tami/items/727fe127158eea39fd3e)の記事で、Event Meshの概要とAPIの使い方について紹介しました。今回はCAPを使ってメッセージを送受信してみたいと思います。
CAPを使うとEvent Meshとの統合が簡単にできます。今回は以下のようなシナリオを実装します。– CAPからEvent Meshのトピックにメッセージを送信する
– 送信したメッセージをCAPのイベントハンドラで受け取る![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/5387b177-40d6-4031-38a9-48ac85eb0770.png)
自分で送信して自分で受信とは変な感じですが、簡単にするために1つのサービスにしています。
スマレジのAPIを使うのに何度かハマった
## スマレジのハマりポイント
1. スマレジのアカウントの種類が二種類ある。
1. スマレジのAPIが二種類ある## スマレジのアカウント
– スマレジショップアカウント (勝手に名前つけてる。普通のスマレジアカウント)
– スマレジデベロッパーズアカウント### スマレジショップアカウント
ショップの方のアカウント、アイテムの追加とか行う飲食店のオーナーさんがいじってそうなイメージのもの。https://smaregi.jp/
### スマレジデベロッパーズアカウント
Qiitaに記事を読みに来るような人が作るべきであろう開発者用アカウント。https://developers.smaregi.jp/
## スマレジのAPI
まず最初のハマりポイントはAPIが二種類あることを知っていなければならない。
– スマレジAPI
– スマレジプラットフォームAPI### スマレジAPI
こっちのAPIはEOLを迎えてこれからサポートされなくなっていくらしい。
そのためスマレジプラットフォームAPIに移行することを推奨されている。
今回はこちらは使わないので割愛。
Sequelizeを使用してトランザクション処理を行う
# 初めに
今回は、Sequelizeのトランザクションを使用して、お金の送金を行う処理を実装します。
所持金1000円のたかしさんと所持金500円の花子さんがいると仮定します。
![SnapCrab_NoName_2021-8-12_14-50-23_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1229062/86b93882-1184-813d-81f3-15e253398d24.png)
上図のように、たかしさんが花子さんに500円を送金したとします。
結果は、下図のように、たかしさんの所持金が500円、花子さんの所持金が1000円になります。
![SnapCrab_NoName_2021-8-12_16-31-51_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1229062/c2c8fbdd-13bb-c800-4cd7-852274ad56f0.png)処理の流れとしては
①たか
Azure App Service(Node Stack) に Webサービス(NestJS)をデプロイする方法
## 最初に
趣味で作ったWebサービス(NestJS)を[Azure App Service](https://azure.microsoft.com/ja-jp/services/app-service/)に無料で公開する方法を記載します。
まず、Azure公式ドキュメント「[Azure で Node.js Web アプリを作成する](https://docs.microsoft.com/ja-jp/azure/app-service/quickstart-nodejs?pivots=platform-linux)」を参考に実施すると、素直に動作しました。
ですので、[NestJS](https://nestjs.com/) でも問題ないと思ってデプロイして、ブラウザで表示したら以下の **エラー** が表示されてしまいました。![Azure Portal – create app service](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179413/ecc80812-e425-6aef-3af
node.js超入門ノート1(Dockerでの環境構築編)
# 初めに
node.jsの勉強の備忘録のため投稿します。
間違い、アドバイス等ありましたらコメント頂けると幸いです。# 目標
node.jsの基本を学びExprassを使いWeb開発の基本的な設計を学ぶ。# 前提条件
自分のPCの環境を汚さずに勉強を進める為、Dockerコンテナ内で作業します。
ローカル環境で行う際はこの記事はスキップしてください。
※VScodeを使います。# ファイル構造
node-app/
├ node/
│ └ Dockerfile/
└ docker-compose.yml/# ソースコード
“`Dockerfile:Dockerfile
# ベースイメージを指定
FROM node:14.2.0-alpine# node.js の環境変数を定義する
# 本番環境では production
ENV NODE_ENV=development# 雛形を生成するのに必要なパッケージのインストール
RUN npm install -g express-generator@4.16.1# ディレクトリを移動する
WORKDIR /
M1 Mac でRailsコマンドが使えなくなった時のメモ
M1 Mac で rbenv 経由で Ruby3.0.2 を入れたらrailsコマンドが以下のエラーで打てなくなった
“`terminal:terminal
$ rails s
-bash: /usr/local/bin/rails:/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby bad interpreter: No such file or directory$ rails -v
-bash: /usr/local/bin/rails:/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby bad interpreter: No such file or directory
“`“`
$ which rails
/usr/local/bin/rails# 現状の環境確認
$ which ruby
/Users/takuya/.rbenv/shims/ruby
$ which gem
/Users/
node.jsのバージョン設定[Homebrew, nodebrew, node.js]
### node.jsのインストールからバージョン設定まで
1. Homebrewを用いたnodebrewをインストール
1. nodebrewを用いて、該当のnode.jsのバージョンをインストール
1. 該当のnode.jsを使用可能にする(パスを通す・バージョンを選択“`bash
– node.jsのパッケージ管理ツール”nodebrew”のインストール
$ brew install nodebrew
$ nodebrew setup
$ nodebrew -v
# nodebrew 1.1.0– インストールできるnode.jsのバージョンを確認
$ nodebrew ls-remote– 該当のバージョンのnode.jsをインストール
$ nodebrew install-binary v16.3.0– 該当のバージョンがインストールされている確認
$ nodebrew list
# v16.3.0
#
# current: none– 適用したいnode.jsのバージョンを指定
$ nodebrew use v16.3.0
# use v16.3.0
Sequelizeを使用してDBからデータを取得する時のメソッドが生成するクエリ
# 初めに
Sequelizeの「findメソッド」や「sumメソッド」などのデータを取得するメソッドが、MySQLを使用した場合にどのようなクエリに変換されているかをまとめました。
Usersテーブルにあらかじめレコードを挿入してモデルを定義しており、Expressを使用した環境での調査になります。Usersテーブル
![SnapCrab_NoName_2021-8-10_16-48-10_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1229062/f016d91d-d543-d80a-8068-b2e908bbfd00.png)# 環境
■ 言語
Javascript(Node.js)
■ フレームワーク
Express
■ RDBMS
MySQL
■ 使用しているパッケージの詳細“`:package.json
“dependencies”: {
“express”: “~4.16.1”,
“mysql2”: “^2.3.0”,
“sequel
CHIRIMENをNode.jsで使用してみる⑴ ー 導入編 ー
今回が初投稿になります。拙い文章かもしれませんがよろしくお願いします。
## はじめに
本記事では、複数回に分けてCHIRIMENコミュニティが提供しているnpmパッケージnode-web-gpioとnode-web-i2cを使用してNode.jsからGPIOとI2Cを制御するために私が実施した方法とそのサンプルコードを記載した備忘録になっています。
今回はCHIRIMENの紹介や後述のNode.js版の導入方法などがメインとなっています。## CHIRIMENについて
CHIRIMENとは、Web ブラウザからハードウェア制御を可能にしたプロトタイピング環境です。簡単にいえば、WebブラウザのJavaScriptからGPIOやI2Cを制御が可能ということです。CHIRIMENについて詳しく”[CHIRIMEN OPEN HARDWARE](https://chirimen.org/)”を参照してください。I2Cの対応デバイスについては”[CHIRIMEN 対応デバイスリスト](https://tutorial.chirimen.org/partslist)”を参照してください。
Windows10のDocker×VSCode環境でReactを動かすまでの道のり
初Qiita投稿です!
現在React Bootcampに参加しており、
Windows10でのDockerを使った環境構築で躓いたポイントがあったので共有します。https://react-nagoya.connpass.com/event/220664/
# そもそもなぜDockerを使ったのか
もともとNodistで構築しようとしていたが過去に手動で導入したNode.jsと干渉しまくってうまく動作しなかった。
調べていく中で以下の記事にたどり着きNodistではなくDockerで構築することに。https://zenn.dev/ymasaoka/articles/note-uninstall-nodish-windows
# ハマったポイントの要約
– docker-compose.ymlでエラーが出まくる
– →ファイルの文字コードをUTF-8に変更したら直った
– Docker上のReactアプリにアクセスできない
– →Docker立ち上げ時にポート開放を行う# 導入手順
## ① Dockerの導入https://www.docker
TeamsFx SDK で Microsoft Graph からTeams データを取得しよう
## ? TL;DR
まずはじめに。このチュートリアルは私が最初に意図したよりもずっと長くなってしまったので、記事の要約を先に書いておきますね。
– チームアプリ開発のための様々なツールとSDKがあるので必要なツールをまず選ぶのが大事
– TeamsFx は、基本的なユーザー情報などのデータを取得するために Microsoft Graph API を使用するアプリを構築するときに最適なツール
– TeamsFx は OAuth 2.0 認証コード付与フローを処理し、アクセス トークンを取得、そのトークンを使用して Graph API 呼び出しを行う
– Graph API のラッパーメソッドの `client.api(path).get` を使用して呼び出しを行うでは、メインコンテンツに進みましょう。
![teamsfx-cover-1000×420.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663749/f02f3f2c-43ef-93d0-cffe-c307d6d55910.png)
node.js + express + herokuを使って LineBotを作ろう。
# はじめに
おはようございます。こんにちは。こんばんは。
Watatakuです。本日の記事はnode.jsとexpressを用いてLinebotを作って見ましょう。という記事になります。
# 対象者
– 初学者。
– LineBotを作りたい方または作ったことがない方。# 書かないこと
– herokuアカウントの作り方。
– herokuへのデプロイ方法。※herokuのアカウントが無いまたはherokuへのデプロイ方法がわからない方は[こちら](https://qiita.com/watataku8911/items/c2b79a141e6547ff4c79)をご覧ください。
# プログラムを書く前に
[Line Developers](https://developers.line.biz/ja/)にアクセスしログインしてください。
その後プロバイダーを作る
名前はなんでもいいです。Botの製作者として出るものです。その後*「Create a new channel」*をクリック。
クリック後モーダルが立ち上がるので*「Messaging API」*を
ReplitでNode.js v16を使用する
先日、discord.js v13がリリースされました。
ですがv13は、Node.jsのバージョンがv16以上でないと使えません。
では、Node.jsがv12であるReplitは使えない!?と思ってしまいますが、裏技で使うことができます。
# 使う方法
## Node.jsのインストール
“`bash
npm install -D node@v16
“`
でNode.jsのv16をインストールします。
## Replitをいじる
そのあと`.replit`に“`toml
run=”npm start”
“`って書いて
`package.json`に“`json
{
“scripts”: {
“run”: “npx node index.js”
}
}
“`
以下を付け加えましょう。(index.jsは適宜変更してください)# 実行すると…?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1518670/7f579f5c-d169-
LINE Pay APIを使った決済機能を作ってみた Node.js版 (Version3対応)
# 概要
LINE Pay APIを利用したいと考えていましたが、version3の記事が少なかったと感じたので使い方について紹介していければと思います。
また、Node.js版のSDKがversion3ではなさそうだったので、直接APIを実行しています。
(現在はPython版SDKしかない模様?)
今回はLINE botを利用した決済機能という想定で作成しています。# LINE Pay APIについて
LINEユーザーがLINE pay加盟店のサイトで利用できる決済システムを提供しています。
LINE Pay APIを利用するためには加盟店登録を行う必要がありますが、検証目的でのSandbox環境も提供されているので、試してみたい方はこちらの環境を利用します。
登録すれば`Channel Id`と`Channel SecretKey`が渡されますので、こちらを利用していきます。[Sandbox環境の利用方法はこちら]
(https://www.puti-banbeena.com/cgi/2019/11/01/linepay-sandbox/)# LINE Pay API
【discord.js】v13でbotを作ってみる
初書 : 2021/08/09
node : 16.6.0
discord.js: v13.0.1# 前書き
先日、discord.jsがv13をリリースしたので、早速使ってみる。
なお、初書時点ではスレッドやボタンなど、v13で新しく登場した機能の一部は触れていないが、興味はあるので近々追記もしくは別記事で投稿する予定。# 前提
・botのトークンの取得やサーバーへの導入の準備が終わっていること
・nodejsの基本的な扱いは出来ること。# インストール
まずはnodeのバージョン確認。v13は最低要件で16.6.0を要求するので、それ以下の場合はアップデートする必要がある。
“`zsh
% node –version
v16.6.1
“`もし更新していない場合はnodebrewなどでアップデートする必要がある。
出来れば、次はプロジェクトの作成。今回は単純に`% npm init -y`で作成した。
あとはdiscord.jsをインストールする。
“`
% npm install discord.js
“`また、discordのapiを使
文字コードを指定してURLエンコードを行う(Node.js)
文字コードを指定してURLエンコードしたい。日本語(が含まれるん)だもの。
そういう話です。# encodeURI()はUTF-8を表すエスケープシーケンスで置換される
Node.jsを用いて、あるAPIをGETメソッドでリクエストする処理を実装していました。そのAPIはクエリストリングを
`APIの名前?key1=value1&key2=value2&signature=認証用の値`
にしてリクエスト送信してくださいね、ということで下記のようなソースでクエリストリングを作成。“`js
// 例えばユーザーの情報を取得するAPI
// API名称
const apiName = ‘getUser’;// リクエスト内容
const params = {
name : ‘則巻アラレ’,
age : 13
}/**
* クエリストリングを作成する
* @param {String} apiName API名称
* @param {Object} params リクエスト内容
* @returns クエリストリング
*/
function
【初心者向け】結局package.jsonって何なの?
# 概要
難しい活字は読む気が起きずこれまで目をそらしていた**package.json**だが,いつまでもこのままではいけないのでしっかり理解してみようと思い,重い腰をあげて色々と調べてみた.自分と同じような駆け出しエンジニアの方たち向けに,自分が調べたことの共有ができればと思う.
何かご指摘等ありましたらコメントをいただけますと幸いです.# はじめに
package.jsonがなんたるかを理解するうえで**Node.js**と**npm**の理解は必須であり,本記事もこの2つの知識を前提に書いていく.この2つをしっかり理解した上で読んで欲しい.分量が多くなりそうなので自分は書かない.
本記事ではpackage.jsonとはそもそも何なのか,どういった役割があるのか,どうやって作成するかの3点について書く.近いうちにpackage.jsonの中身については別途詳しくまとめる.# package.jsonとは
`package.json`を一言で表すならば,「**アプリ開発の際に自分がインストールして使ったライブラリと同じライブラリを,他の開発者の人にも使ってもらうための情報が
AtCoder Beginner Contest 213 ~JavaScriptの練習~
# 感想
リアタイで参加したが、実装ミスなどにより最悪な結果となった。
D問題までは難しくなかったが、E問題が大きな壁になった。
E問題のように、操作をコストと捉えてダイクストラや01BFSに落とすのは以前に見たことがあったが、実戦から離れすぎて忘れてしまった。
再び精進する気があまりないので、Kaggleなどの別の競技をやってみるのが良いのかもしれない。
# [A問題](https://atcoder.jp/contests/abc213/tasks/abc213_a)
## 考察
$A \oplus C=B \leftrightarrow C=A \oplus B$なので、xorを計算するのみ。
## 文法
入力の部分が面倒なので、簡素化した方が良いかもしれない。
それ以外は特に感じたことはなかった。
## コード
“`javascript
// inputに入力データ全体が入る
function Main(input) {
// 1行目がinput[0], 2行目がinput[1], …に入る
input = input.split(“\
【個人開発/LINE Messaging API】Node.js, TypeScriptで現在地から美味しいお店を探すアプリを作ってみた(②)
LINE Messaging APIを使って現在地から美味しいお店を探すアプリを作ってみました。
完成形としては以下の通りです。![名称未設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/5fd1fb94-0e4c-4112-e1cc-383516e75b2f.png)
![名称未設定2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/7f16f3d8-e960-a45a-a1ed-8c442c138ed8.png)
## アーキテクチャ
今回はサーバーレスアーキテクチャの根幹の機能である、**「AWS Lambda」**, **「Amazon API Gateway」**, **「Amazon DynamoDB」**の3つを使用してアプリを作成します。![スクリーンショット 2021-06-26 15.43.25.png](https://qiita-image-store.s3
【個人開発/LINE Messaging API】Node.js, TypeScriptで現在地から美味しいお店を探すアプリを作ってみた(①)
LINE Messaging APIを使って現在地から美味しいお店を探すアプリを作ってみました。
完成形としては以下の通りです。![名称未設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/5fd1fb94-0e4c-4112-e1cc-383516e75b2f.png)
![名称未設定2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/7f16f3d8-e960-a45a-a1ed-8c442c138ed8.png)
## アーキテクチャ
今回はサーバーレスアーキテクチャの根幹の機能である、**「AWS Lambda」**, **「Amazon API Gateway」**, **「Amazon DynamoDB」**の3つを使用してアプリを作成します。![スクリーンショット 2021-06-26 15.43.25.png](https://qiita-image-store.s3