0

所以我一直在做一个副项目来更熟悉 MEAN 环境,我遇到了阻碍我几天的砖墙。

我的问题是:当我提取 MongoDB 的计数时,它会毫无问题地显示在页面上。但是当我想在 2 列表中显示我的数据库中的数据时,我不能。Mongo 将我的数据库作为一个巨大的 JSON 文档返回。我希望能够有一个表,其中包含mongo 集合中每个文档的name和。totalheroes

谁能帮我?我已经在网上搜索了好几天了,至少想通过这个测试。

这是我的文件:

-- 来自 SERVER.JS 的片段 --

//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
    });
});

-- 索引翡翠 --

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 Apparition' },{ name: 'Anti-mage' },{ name: 'Axe' },{ name: 'Bane' } ,{ name: '蝙蝠骑士' },{ name: 'Beastmaster' },{ name: 'Bloodseeker' },{ name: 'Bounty Hunter' },{ name: 'Brewmaster' },{ name: 'Bristleback' }, { name: 'Broodmother' },{ name: 'Centaur Warrunner' },{ name: 'Chaos Knight' },{ name: 'Chen' },{ name: 'Clinkz' },{ name: 'Clockwerk' }, { name: 'Crystal Maiden' },{ name: 'Dark Seer' },{ name: 'Dazzle' },{ name: 'Death Prophet' },{ name: 'Disruptor' },{ name: 'Doom' } ,{ name: '龙骑士' },{ name: '卓尔游侠' },{ name: 'Earthshaker' },{ name:'Elder Titan' },{ name: 'Enchantress' },{ name: 'Enigma' },{ name: 'Faceless Void' },{ name: 'Gyrocopter' },{ name: 'Huskar' },{ name: 'Invoker' },{ name: 'IO' },{ name: 'Jakiro' },{ name: 'Juggernaut' },{ name: '守光者' },{ name: 'Kunkka' },{ name : 'Leshrac' },{ name: 'Lich' },{ name: 'Lifestealer' },{ name: 'Lina' },{ name: 'Lion' },{ name: 'Lone Druid' },{ name: 'Luna' },{ name: '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' },{ name: 'Omniknight' },{ name: 'Outworld Devourer' },{ name: 'Phantom Assassin' },{ name: 'Phantom Lancer' },{ name: 'Puck' },{ name: 'Pudge' },{ name: 'Pugna' },{ name: 'Queen of Pain' },{ name: 'Razor' }, { name: 'Riki' },{ name: 'Rubick' },{ name: 'Sand King' },{ name: '影魔' },{ name: '影魔' },{ name: '暗影萨满' },{ name: 'Silencer' },{ name: 'Skeleton King' },{ name: 'Skywrath Mage' },{ name: 'Slardar' },{ name: 'Slark' },{ name: 'Sniper' },{ name: 'Spectre' },{ name: 'Spirit Breaker' },{ name: 'Storm Spirit' },{ name: 'Sven'},{ name: 'Templar Assassin' },{ name: 'Tidehunter' },{ name: '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' } ,{名称:'宙斯'}{ name: 'Ursa' },{ name: 'Vengeful Spirit' },{ name: 'Venomancer' },{ name: 'Viper' },{ name: 'Visage' },{ name: 'Warlock' },{ name: 'Weaver' },{ name: 'Windrunner' },{ name: '巫医' },{ name: 'Zeus' }{ name: 'Ursa' },{ name: 'Vengeful Spirit' },{ name: 'Venomancer' },{ name: 'Viper' },{ name: 'Visage' },{ name: 'Warlock' },{ name: 'Weaver' },{ name: 'Windrunner' },{ name: '巫医' },{ name: 'Zeus' }

感谢您提供的任何帮助。这真的令人沮丧!

4

2 回答 2

0

您只是在渲染heroData对象的文本表示。

至少,您需要放置heroData脚本标签中并使用 angular 的表达式来打印它。像这样的东西:

script.
    var heroes = heroData;
    // put heroes into $scope 

div {{heroes}}
于 2014-02-26T20:40:09.927 回答
0

如果你想使用 Angular,你可以使用$httpor$resource作为数据源,并设置一个 api 端点用于数据输出。

如果要在jade文件中显示结果,可以使用each ... in ...来显示数据:

table
  tr
    th Name
    th Total
  each hero in heros
    tr
      td= hero.name
      td= hero.total
于 2016-08-09T08:46:13.590 回答