Free Code Camp - Back End Development Certification

筆者の思い込みや勘違いが含まれる可能性があります。指摘大歓迎
また、ここに書かれている事項は記述時点のものです
FreeCodeCampはOSSであるため、問題点が修正されたり項目がなくなったり増えたりすることは良くあります
最期は自分の目で確かめてください

  1. 基本的なツール(git,Cloud9,github)の説明
  2. Node.jsとmongoDBの基本解説
  3. [課題]WebAPIを作ってみよう
  4. [課題]Webアプリケーションを作ってみよう

という構成です。 1,2はCloud9の開発環境上で完結するのですが、3,4はgithubソースコードを公開してherokuにデプロイせよ という指示になっています。
そしてherokuへのデプロイガイドを閲覧しようとすると「準備中だからCould9で課題こなしてね」と表示されます。
Herokuのデプロイは慣れてないと手間取るかもしれません。
Heroku,Cloud9ともに無料で使える範囲がどんどん変化していってしまうところもあり、教材の更新が追いついていないです。
調べながらやりましょう。困ったらChatかForumで検索・質問すればよいです。

Node.jsアプリケーションのHeroku対応

ぐぐれば出てきますが、FreeCodeCampには記述ながなかったのでメモ

packages.jsonにenginesを指定

  "name": "hoge",
  "version": "1.0.0",
  "main": "server.js",
  "dependencies": {
    "express": "4.X.X"
  },
  "engines": {
    "node": "4.X.X",
    "npm": "2.X.X"
  }
}

Listenポートを環境変数で受け取る

app.listen(process.env.PORT || 8080);

[MongoDB] 接続先URLを環境変数で受け取る

const mongo_uri = process.env.MONGODB_URI || 'mongodb://localhost/mypath';

mLab MongoDBを利用しています。
Herokuのパネルからadd-onとして追加が可能ですが、add-onを利用するにはクレカの登録が必要になります。
アクセス情報の直埋め込みはやめましょう。
環境変数の名前がわからない or add-onは使えないので直接セットする必要があるのならheroku CLIで接続を

その他ハマったところ

Image Search Abstraction Layer?画像検索ってどうやるの?

ぐぐると同じく困った受講者の声が多数hitします。
基本的には外部サービスの検索APIを利用するのですが、無料で十分な機能を持ち、簡単に組み込める画像検索APIがありません。
候補はGooleAPI(制限きつめ。アクセス面倒)でしょうか。
こちらも認証情報は環境変数セットで直接埋め込まないように作成する必要があります。
この課題は慣れていないと手間がかかるのでスキップしてあとまわしにしてもよいかと。