- 0.1. ShopifyデータをHTMLベースでJSへ渡す方法
- 0.2. TypeScriptのfindでundefinedが返らないようにする方法
- 0.3. 「決められない」人のためのラーメン激推しBot
- 0.4. Magicodeという簡単に稼げるエンジニア向けブログサービスを作ったので使って欲しい
- 0.5. Exressを使って占いAPIを作りましょう
- 0.6. jQueryで指定文字以上でボタンを非活性にする
- 0.7. JavaScript Proxyの使い方
- 0.8. JavaScript コールバック関数の使用例
- 0.9. 【備忘録】.phpから別の.phpにある変数を参照する
- 0.10. JavaScript基礎概念勉強ノート3
- 0.11. React のコンポーネントでは、名前付きエクスポートを利用すると良い
- 0.12. PokeAPIを使ってポケモンをゲットしてみた
- 0.13. javaScriptの処理の流れとwindowsオブジェクトの中身
- 1. javaScriptの処理の流れ
ShopifyデータをHTMLベースでJSへ渡す方法
今回は、どうしても面倒だった、Liquid data > jsへjsonで渡す > jsでHTMLテンプレートにデータを入れて出力 の工程で楽出来ないかと思い…試行錯誤した結果、上手くいったので共有したいと思います。
なぜ、この方法を考えたかと言うと、たまにある一覧データでのもっと見るボタン。
Liquidでの実装も可能だが、独自カスタムをした場合、jsを組み込む必要があるため、どうしても一旦は全データをjsへ渡す必要がある。
今までは、Liquidでjsonを作成し、それをjsで加工し、HTMLへ流し込むとやってはいたが…。jsがスパゲッティ化してしまう。
というか、条件に応じてどれだけでも存在するロジックを組み、コードを書くのが面倒くさかった。理想としては、Liquidで判定 > Liqiud dataをHTMLに入れる > HTMLごとjsへ > jsは必要な分だけ出力。
こいつができたので、以下で説明していきます。
## まずはコードの共有
今回は注文履歴一覧での、もっと見る実装だったのでcustomer.ordersで実装しています。
“`
{% paginate c
TypeScriptのfindでundefinedが返らないようにする方法
## findの使用例
findとは、提供されたテスト関数を満たす配列内の**最初の値**を返すものです。
“`example.ts
const array1 = [1, 2, 3, 4, 5];const result = array1.find(element => element > 3);
console.log(result); // 4
“`
例のコードだと、配列の要素で3より大きい最初の要素は4なので、resultには4が返ります。別に何の問題もないコードに見えるのですが、resultにカーソルを当ててみます。
![スクリーンショット 2022-04-17 19.03.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/664202/161c478c-593d-5b71-3227-9c12a27ac585.png)
**え、undefined…?**
そうなんです。findは、テスト関数を満たす配列内の要素がなかった場合に、undefinedを返すようになっているの
「決められない」人のためのラーメン激推しBot
## 「どのお店にしよう」を解決します
突然ですが、私はラーメンが大好きで、よく食べに行っています。
ただ、生来の優柔不断な性格のせいで、いつもどのお店にいくか迷ってしまうのです。**「誰かが自分に”ここだ!”というお店を強くプッシュしてくれたら迷わずに済むのに…」**
そこで、エリアを指定するとその付近のお店を一店だけ選んで、そのお店を”激推し”してくれるLINE Botを作ってみました!
## ラーメン激推しBot
まずはこちらをご覧ください。場所を指定すると、その付近のラーメン店を"激推し"してくれるLINE Botを作りました
これでもうお店選びに迷わなくてすむぜ?#ラーメン#protoout pic.twitter.com/mAFnJEPzgd— KendoLab (@kelab_8) April 16, 2022
おすすめのラーメン屋を紹介するLINE Botは世の中に数あれど、選ばれた一店だけをここまで激推ししてくるBotはないんじゃないでしょうか。(多分)
それでは、以下実装について解説していきます。
## 環境
Node-RED(Heroku環境上で実装)
JavaScript
[LINE Massaging API](https://developers.line.biz/ja/services/messaging-a
Magicodeという簡単に稼げるエンジニア向けブログサービスを作ったので使って欲しい
![](https://i.imgur.com/uWyOXuR.png)
# はじめに
[「Jupyter Notebookを一瞬で記事にできて誰でも収益化できるサービス作ってみた」](https://qiita.com/Taiki92777/items/f408846297526addba4f)という記事を以前書きましたが,そのサービス名をNoteboxから**Magicode**に変えて再リリースしました!https://jp.magicode.io/
https://qiita.com/Taiki92777/items/f408846297526addba4f
# Magicodeとは?
QiitaさんやZennさんのようなエンジニア向けのブログサービスです。Magicodeという名称は,magicとcodeを組合せた造語です。基本的にはマークダウンで自分のブログが書けるサービスですが,特殊な機能が以下の4つほどあります。# 機能1. ブラウザ上でコードを実行できる
Exressを使って占いAPIを作りましょう
# expressを使ってAPIを作りましょう
“`
curl https://tarot-system.herokuapp.com
“`
まず出来上がったものはこちら。
シングルカードのタロット占いができるAPIです。***
1.まずは適当にディレクトリを作成しましょう。
2.そのディレクトリに移動して
“`
npm init
“`
このコマンドを実行します。
色々質問されますが、とりあえずEnter連打でOKです。3.次にExpressをインストールします。
先程と同じく1で作ったディレクトリで
“`
npm install express –save
“`
このコマンドで下準備は完了です。4.index.jsファイルを作成し次のコードを記述します。
“`javascript
const express = require(‘express’);
const app = express();app.set(‘port’, (process.env.PORT || 3000));
app.get(‘/’, function(request, res
jQueryで指定文字以上でボタンを非活性にする
# [何をするか](#-2.何をするか)
コンテンツを登録する際やプロフィールをDBに登録する際に、最大文字数を制限したい場合があります。
その際にバックエンドでバリデーションを行っても良いのですが、そもそもフロント側でsubmitできない様にしてあげた方が親切ですね。まず下の様な簡単なフォームがあるとする。
“`index.php