因此,我一直致力于一个侧面项目,以便更熟悉MEAN环境,而且我已经走到了一堵砖墙,现在已经阻挡了我几天。
我的问题是:
当我拉出MongoDB的计数时,它会在页面上显示没有问题。
但是,当我想在2列表中显示数据库中的数据时,我不能。 Mongo将我的数据库作为一个巨大的JSON文档返回。我希望能够为mongo集合name
中的每个文档创建一个包含total
和heroes
的表。
任何人都可以帮助我吗?我已经在网上搜索了几天,并希望至少通过这个测试。
以下是我的文件:
- 来自SERVER.JS的SNIPP -
//Connect to MongoDB
mongoose.connect('mongodb://localhost/dota2');
var db = mongoose.connection;
//mongoose.connect('mongodb://****:*****@ds033469.mongolab.com:33469/dota2');
db.on('error', console.error.bind(console, 'connection error...'));
db.once('open', function callback(){
console.log("Connection to Mongo database opened");
});
var Schema = mongoose.Schema;
var heroSchema = new Schema({
name: String,
initiator: Number,
disabler: Number,
pusher: Number,
jungler: Number,
nuker: Number,
slug: String,
lanesupport: Number,
escape: Number,
carry: Number,
total: Number,
support: Number,
melee: Number
},
{collection: 'heroes'});
//Pulling out a piece of data and putting it into an object for Angular
var heroModel = mongoose.model('name:', heroSchema, 'heroes');
var heroData;
heroModel.find('name',{'name':'', _id:0}, function(err, herodatagrab) {
if(err);
heroData = herodatagrab;
});
//Show that Dota2/heroes has documents within.
var heronumber;
heroModel.count({ }, function (err, heroNumObj) {
if (err);
heronumber = heroNumObj;
});
//Catch-Partials
app.get('/partials/:partialPath', function(req, res) {
res.render('partials/' + req.params.partialPath);
});
//Catch-All route
app.get('*', function(req, res){
res.render('index', {
heroData: heroData,
heronumber: heronumber
});
});
- INDEX.JADE -
extends ../includes/layout
title = {title}
block main-content
section.content
div(ng-view)
h3=heronumber
| heroes in the database
block hero
section.content
div(ng-view)
h3=heroData
- 因为它出现在页面上 -
数据库中的102位英雄
{name:'Abaddon'},{name:'Alchemist'},{name:'Ancient 幻影'},{name:'Anti-mage'},{name:'Ax'},{name:'Bane'},{ 名称:'Batrider'},{name:'Beastmaster'},{name:'Bloodseeker'},{ 名称:'Bounty Hunter'},{name:'Brewmaster'},{name:'Bristleback' },{name:'Broodmother'},{name:'Centaur Warrunner'},{name:'Chaos Knight'},{name:'Chen'},{name:'Clinkz'},{name:'Clockwerk'},{ 名称:'Crystal Maiden'},{name:'Dark Seer'},{name:'Dazzle'},{ 名字:'死亡先知'},{姓名:'Disruptor'},{姓名:'Doom'},{姓名: 'Dragon Knight'},{name:'Drow Ranger'},{name:'Earthshaker'},{ 名称:'Elder Titan'},{name:'Enchantress'},{name:'Enigma'},{ 名称:'Faceless Void'},{name:'Gyrocopter'},{name:'Huskar'},{ 名称:'Invoker'},{name:'IO'},{name:'Jakiro'},{name: 'Juggernaut'},{name:'光之守护者'},{name:'Kunkka'},{ 名称:'Leshrac'},{name:'Lich'},{name:'Lifestealer'},{name: 'Lina'},{name:'Lion'},{name:'Lone Druid'},{name:'Luna'},{ 名称:'Lycanthrope'},{name:'Magnus'},{name:'Medusa'},{name: 'Meepo'},{name:'Mirana'},{name:'Morphling'},{name:'Naga Siren'},{name:'Nature \'s Prophet'},{name:'Necrolyte'},{name: 'Night Stalker',{name:'Nyx Assassin'},{name:'Ogre Magi'},{ 名字:'全能骑士'},{名字:'Outworld Devourer'},{名字:'幽灵 Assassin'},{name:'Phantom Lancer'},{name:'Puck'},{name: 'Pudge'},{name:'Pugna'},{name:'Queen of Pain'},{name:'Razor' },{name:'Riki'},{name:'Rubick'},{name:'Sand King'},{name: 'Shadow Demon'},{name:'Shadow Fiend'},{name:'Shadow Shaman'},{ 名称:'Silencer'},{name:'Skeleton King'},{name:'Skywrath Mage' },{name:'Slardar'},{name:'Slark'},{name:'Sniper'},{name: 'Spectre'},{name:'Spirit Breaker'},{name:'Storm Spirit'},{ 名称:'Sven'},{name:'Templar Assassin'},{name:'Tidehunter'},{ 名称:'Timbersaw'},{name:'Tinker'},{name:'Tiny'},{name: 'Treant Protector'},{name:'Troll Warlord'},{name:'Tusk'},{ name:'Undying'},{name:'Ursa'},{name:'Vengeful Spirit'},{name: 'Venomancer'},{name:'Viper'},{name:'Visage'},{name:'Warlock' },{name:'Weaver'},{name:'Windrunner'},{name:'Witch Doctor'},{ 名称:'宙斯'}
感谢您提供任何帮助。这真令人沮丧!
答案 0 :(得分:0)
您只是呈现heroData
对象的文本表示。
至少,您需要将heroData
放在脚本标记中,并使用angular的表达式进行打印。这样的事情:
script.
var heroes = heroData;
// put heroes into $scope
div {{heroes}}
答案 1 :(得分:0)
如果要使用Angular,可以使用$http
或$resource
作为数据源,并为数据输出设置api端点。
如果要在jade文件中显示结果,可以使用each ... in ...
显示数据:
table
tr
th Name
th Total
each hero in heros
tr
td= hero.name
td= hero.total