2016-11-28 3 views
1

Я хочу отображать данные mongodb в виде таблицы в html с node.js, express.js и angular.js.Табличное представление базы данных mongodb с выраженным и угловым

Что я делаю сейчас что-то вроде этого

route.js

app.get('/superhero', function(req, res) { 
    superhero.superhero_list(req,res); 
    res.sendfile('./public/superhero.html'); 
}); 

superhero.js

var express = require ('express') 
var rootRequire = require('root-require'); 
var bodyParser = require('body-parser'); 
var superheroSchema = rootRequire('Anguar/models/superhero'); 
module.exports = { 
superhero_list: function(req, res) { 
     superheroSchema.find({}, function(err, superhero) { 
      if (err) { 
       return res.status(400).send({ "message": "Server error!", "err": err }); 
      } 
      else { 
       return res.status(200).send({ "superheros": superhero }); 
      } 
} 
};   

superhero.html

<h1> Super heros</h1> 

<table> 
     <thead> 
     <tr> 
      <th>S.no</th> 
      <th>Super hero</th> 
      <th>Status</th> 
      <th>Action</th> 
     </tr> 
     </thead> 
     <tbody> 
     <tr> 
     // to implement the table 
     </tr> 
</table> 

Проблема Я облицовка - это res Понс из

return res.status(200).send({ "superheros": superhero }); 

непосредственно дает мне Ответные

{ "супергероев": [{ "_ ид": "582c5211c8a8e06c0849a238", "имя": "Супермен"}, { "_id": "583bf729a9de83840ca277dc", "имя": "Человек-паук"}, { "_ идентификатор": "583bf78ca9de83840ca277de", "имя": "Бэтмен"}, { "_ идентификатор": "583bf793a9de83840ca277df", "имя": "Шактиман "}, {" _ id ":" 583bfc97a9de83840ca277e0 "," name ":" Me "}]}

и не загружать superhero.html

как получить данные в html?

ответ

1

Похоже, вы пытаетесь отобразить эту серверную сторону. Сейчас может быть немного проще сделать это на стороне клиента. Как только это будет работать, вы можете оценить, принесет ли вам рентабельность на стороне сервера.

Вы не предоставили угловую часть вашего кода, но вы можете легко подключить что-то в Угловом ударить API и загрузить свои результаты, как это:

Сервиса

angular.module('app') 
    .service('myService', function($http) { 
    this.getSuperheroes = function() { 
     return $http.get('<path_to_api>/superhero'); 
    } 
    }); 

контроллер

angular.module('app') 
    .controller('myController', function($scope, myService) { 
    myService.getSuperheroes() 
     .then(function(superheroes) { 
     $scope.superheroes = superheroes; 
     }); 
    }); 

шаблона

<table> 
    <thead> 
    <tr> 
     <th>S.no</th> 
     <th>Super hero</th> 
     <th>Status</th> 
     <th>Action</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr ng-repeat="superhero in superheroes"> 
     <td>{{superhero.number}}</td> 
     <td>{{superhero.name}}</td> 
     <td>{{superhero.status}}</td> 
     <td>{{superhero.action}}</td> 
    </tr> 
</table> 

Как вы можете видеть, служба обеспечивает функцию, чтобы получить свои супергерои, то вы можете вызвать эту функцию службы от контроллера, а затем отображать результаты в таблице.

Вы также, вероятно, хотите, чтобы изменить свою route.js на следующее:

app.get('/superhero', function(req, res) { 
    return superhero.superhero_list(req,res); 
}); 

Таким образом, он возвращает ответ от вызова DB и не посылать статический файл. Помните, что где-нибудь в вашем приложении «Угловое» вам нужно будет отобразить шаблон (вы можете найти примеры приветствия на сайте Angular), так как вы не отризываете его на стороне сервера.

Надеюсь, что это поможет! С удовольствием ответим на любые дальнейшие вопросы об этом :)

+0

, в какой части ответ назначается моему интерфейсу? –

+0

Я хочу спросить, что return res.status (200) .send ({"superheros": superhero}); эта строка дает мне статическую страницу снятого выше ответа. Как мне импортировать этот ответ в угловой js –

+0

У меня есть еще один вопрос: «Является ли служба и контроллер двумя разными файлами? –

Смежные вопросы