[MBaaS][heroku] StrongLoopのloopbackをMongoDBで動かす

By |10月 8, 2014|heroku, MBaaS, Node.js, |0 comments


ネタがないので前回の続きです><

前回の最後でデータの永続化にはDBと接続しましょう、という感じで終わりましたが、今回は具体的にloopbackのストレージにMongoDBを利用してみます。

早速、Herokuで使うのでMongoLabのアドオンを追加して接続URIを確認します。

$ heroku addons:add mongolab
$ heroku config
=== loopback-sample Config Vars
MONGOLAB_URI: mongodb://heroku_appxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxx@xx000000.mongolab.com:43200/heroku_appxxxxxxxx

あとは server/datasources.json を以下のように変更します。

{
  "db": {
    "name": "db",
    "defaultForType": "mongodb",
  	"connector": "loopback-connector-mongodb",
  	"url": "mongodb://heroku_appxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxx@xx000000.mongolab.com:43200/heroku_appxxxxxxxx"
  }
}

接続URIには環境変数を入れておきたいところですが解らなかったのでとりあえず直書き>< これでMongoDBをストレージとしてデータが永続化されました、と、これだけでは寂しいので少しハマった client ディレクトリを使ってクライアントWebアプリケーションを同封する方法をオマケに。 単純に以下のように server/server.js を変更すれば表示されるかな、と思ったんですが...

// 21, 22行目をコメントアウト
var path = require(‘path’);
app.use(loopback.static(path.resolve(__dirname, ‘../client’)));

まだデフォルトのLadyコメントが表示されます。

これは server/boot/root.js を以下に変更することで client/index.html が表示されるようになります。

module.exports = function(server) {
  var router = server.loopback.Router();
  router.get('/', function(req, res) {
    res.render('index');
  });
  server.use(router);
};

若しくは server/boot/root.js を削除しちゃっても動きます(今のとこ支障なし)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です