JSON データをマングース ドキュメントで返してから、Angular を使用して表示しようとしています。このコードを使用すると、ページにエラーはありません。Angular IndexCtrl の $http.get メソッドは決して成功しないため、問題は API の get メソッドの実装方法にあると思います。そのメソッドを適切に返すように書き換える助けがあれば、大歓迎です!
明確にするために: 私が望むのは、JSON オブジェクトのようにドキュメントにアクセスできるようにして、データをクライアントに表示できるようにすることです。
更新:エラーが発生します:
GET http://localhost:3000/api/tracks
そのエラーがコンソールに表示されるまでしばらく時間がかかります
API メソッド
app.get("/api/tracks", function(req, res) {
return Track.find({}, function (err, tracks) {
if (err) {
res.send(500);
return;
}
return res.json({
tracks: tracks
});
});
});
マングースデータベース
var mongoose = require('mongoose');
var uristring =
process.env.MONGOLAB_URI ||
'mongodb://localhost/HelloMongoose';
var mongoOptions = { db: { safe: true }};
var db = mongoose.createConnection(uristring, mongoOptions, function (err, res) {
if (err) {
console.log ('ERROR connecting to: ' + uristring + '. ' + err);
} else {
console.log ('Succeeded connected to: ' + uristring);
}
});
//a Schema for a track
var Schema = new mongoose.Schema({
name: String,
location: String,
description: String
});
var Track = mongoose.model('Track', Schema);
var spot = new Track({name: 'zildjian'});
spot.save(function (err) {
console.log('saved');
if (err) // ...
console.log('meow');
});
角度コントローラー
function IndexCtrl($scope, $http) {
$http.get('/api/tracks').
success(function(data, status, headers, config) {
$scope.tracks = data.tracks;
console.log($scope.tracks + "scope tracks data"); //This does not log! it never makes it this far
});
}
$scope.tracks を表示する Jade テンプレート
p There are {{tracks.length}} posts
div(ng-repeat='track in tracks')
h3 {{track.name}}
div {{track.description}}