【書籍】サーバーレスシングルページアプリケーション ハマりそうな箇所をまとめてみた
まだ読んでる途中だけど、知らない人はハマりそうな部分がちらほらあったので、まとめてみた。
読み進めて他にもありそうなら追記しようと思う。
なお、当方Macを使っているので、Windows環境での操作についても、時間がある時に追記しようと思う。
P.11 githubからソースをクローンするところ
githubへの登録は問題なくできると思う。
その後、ソースのフォーク・フォークしたソースのクローンについて説明したい。
ただ、設定をしていない場合、クローンしようとすると弾かれてしまう。
1. https://github.com/benrady/learnjs を開き、右上にある「Fork」を押すと、自分のアカウントにリポジトリがコピーされる。
2. ローカルでターミナルを起動し、ホームディレクトリ(/Users/ユーザー名)下の「.ssh」に移動する。
3. $ ssh-keygen -t rsa -C "登録したメールアドレス"
4. $ pbcopy rsa.pub(rsa.pubの内容をクリップボードにコピー)
5. githubのsettings - SSH and GPG keysで「New SSH key」を押し、ペースト
6. /Users/ユーザー名/.ssh に config ファイルを作成(内容は以下)
これでイケるはず
次、P.31のJasmineについて
index.htmlのヘッダに以下を追加
P.36テストコード
テストの順番を入れ替えてる。
なぜかというと、先にハッシュ入りのコードを実行すると「.landing-view」クラスの入っているdivが消されてテストが通らないから。
ひとまず以上!
DynamoDBでちょっとハマった話
Bluemixのドキュメント更新の遅さに辟易して浮気してます。
んで、AWSでNode.js使ってあれこれしようとしてる訳ですが・・・
ローカルでDynamoDBを動かしてて、まずテーブル作成だなとこんなコード書いてみた。
const AWS = require('aws-sdk');
AWS.config.update({
region: 'ap-eastwest-1',
endpoint: 'http://localhost:8000'
});
const db = new AWS.DynamoDB();
const params = {
TableName: 'Users',
KeySchema: [
{ AttributeName: 'email', KeyType: 'HASH' },
{ AttributeName: 'name', KeyType: 'RANGE' },
],
AttributeDefinitions: [
{ AttributeName: 'email', AttributeType: 'S' },
{ AttributeName: 'name', AttributeType: 'S' },
{ AttributeName: 'password', AttributeType: 'S' }
],
ProvisionedThroughput: {
ReadCapacityUnits: 10,
WriteCapacityUnits: 10
},
};
db.createTable(params, function(err, data) {
if (err) {
console.error('Unable to create table. Error JSON: ' + JSON.stringify(err, null, 2));
} else {
console.log('Created table. Table description JSON: ' + JSON.stringify(data, null, 2));
}
});
で、結果がコレ
The number of attributes in key schema must match the number of attributesdefined in attribute definitions.
つまり、キースキーマと属性は一対一じゃないとダメよって事で。
んで、「は?全部の属性にソートキーつけろって事かよ」って考えたSQL脳。
よくよくドキュメント読んでみると、
AttributeDefinitions – キースキーマ属性のデータ型。
直訳して「属性の定義」だから、カラムを全部定義するんだと勘違いしてたが、要はプライマリキーとソートキー以外はテーブル作成時に定義する必要ないよ、と。
コードからpasswordの行を削除すると、無事通りました。ヤレヤレ
Bluemix本買ったどー!
いや、最近Bluemixいじくりまわしてたんですけどね、色々よく分からんので買いました「IBM Bluemix クラウド開発入門」。
そもそも何故分かんなかったかってーと、Bluemixのドキュメント自体が古くて、マニュアル通りに進めようとしても進められんのですよ、これが。
んで、Bluemix Users Groupに入ったついでに、本も買って一気にやっちまおうと。
今考えてんのは、バックエンドでNode.jsを動かして、フロントエンドはiPhone(swift)を使おうかなと。
まぁ、AWSの方が色んな本が出てて覚えやすいんだろうなーとは思いつつ、何となくBluemixにそそられたわけで。
そんな訳で、これからやっていく事を書き起こして行こうと思って、今更ブログを始めたのだ!
これからの成長を見守っておくれ。(誰に言うでもなく)
あ、因みに今まで何もしてなかったわけじゃないよ(汗)
カタログから「MobileFirst Services Starter」を選んでだな
ツールチェーンを作成、と
んで、「Eclipse Orion Web IDE」を開くと・・・はい、サンプルが出来てますよっと
んで、Mac使ってNode.jsのアプリ作ってんだ。
プッシュ通知とかCloudantDBの使い方とか色々覚えることあるから、また覚えたら続きを書くぜ!
まぁ、Bluemixじゃないとヤダって訳じゃないし、今は評価期間だから、他のクラウドとかも手を出したりするかもね。かもね。