2017-01-23 2 views
0

У меня есть базы данных MongoDB документ, который содержит массивСтранный MongoDB формат ответа

{ 
    "_id":ObjectId("588116a66f7d758b144177f7"), 
    "name":"Michael", 
    "email":"[email protected]", 
    "company":"Shift", 
    "username":"MichaelP", 
    "password":"$2a$10$unH/7anPylxk1x5zk6/so.YcByZqQoBdFi9IlWnHty2gNouUrt7ea", 
    "position":"Manager", 
    "shifts":[ 
     "day", 
     "day", 
     null, 
     "night", 
     null, 
     null, 
     null, 
     "15" 
    ], 
    "score":[ 
     null, 
     "550", 
     null 
    ], 
    "__v":0 
} 

Я хочу, чтобы распечатать shifts[7] на веб-странице. Я новичок в node.js, но я могу напечатать {{username}} или {{company}}, но shifts[7] печатает как '{ '0': '1', '1': '5' }' Я представляю, что это простое решение в моем index.js, однако я не могу понять, как это понять.

Сообщайте об уменьшенной версии моего кода index.js ниже и благодарим за помощь.

router.get('/hub',ensureAuthenticated, function(req, res, next){ 
    var collection = db.collection('users'); 
    var totalHours= req.user.shifts[7] + ''; 
    var totalhour=0; 

    res.render('hub', {username: req.user.username, 
    company: req.user.company, 
    position: req.user.position, 
    totalHours: totalhour 
    }); 
}); 
+0

вы пробовали 'вар totalHours = req.user.shifts [7] .join ('')'? –

+0

Вы неправильно используете вложенные массивы. Вложенный массив должен содержать объекты. – Tom

+0

Спасибо, @JyothiBabuAraja говорит, что req.user.shifts [7] .join не является функцией, должен ли я писать функцию отдельно? – LiveLongCandy51

ответ

0

я думаю, что проблема заключается в использовании req.user вместо пользователи ответ, и вы не получаете ни одного объекта в ответ, так это происходит, вы должны пройти _id для получения одного значения пользователя, а затем использовать его для ваш дальнейший процесс ....

router.get('/hub/:id',ensureAuthenticated, function(req, res, next){ 
var collection = Restangular.One('users',req.user._id); 
    collection.get().then(function(err,user){ 
    var totalHours= users.shifts[7] + ''; 
    var totalhour=0; 
    $scope.user=user; 
    $scope.totalHours = user.shift[7]; 

}, функция (ERR) { console.log ("подстраховаться", ERR)});

res.render('hub', {username: req.user.username, company:req.user.company, position: req.user.position, totalHours: totalhour}) 
}); 

за общий час в HTML просто напечатать {{}} totalHours

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