无法传递mongoose数据来查看Jade

时间:2016-04-27 05:54:30

标签: javascript node.js express mongoose

如何将数据传递给视图,我使用" mongoose-simple-random"从我的数据库中挑选5个随机食物,我想通过我的Jade代码传递它们,但我不知道怎么样,有人能帮助我,这是我的代码:

jade almuerzo.jade

Index

almuerzo.js(我的ExpressJS路由器)

extends layout

block takami
    .container-fluid
        .row
            .col-md-12
                h3 Guardar  almuerzo
                form(method="post", action="/almuerzo")
                    fieldset.form-group
                        label(for='nombre') Nombre de Comida
                        input#nombre.form-control(type='text', placeholder='Nombre', name='nombre')
                    fieldset.form-group
                        label(for='tipo') Tipo de comida
                        input#tipo.form-control(type='text', placeholder='tipo de comida', name='tipo')
                    button.btn.btn-primary(type='submit') Submit
    .container-fluid
        .row
            .row
                .col-md-12
                    h3 Menu de Almuerzos
            .row
                .col-md-2
                     h3 Lunes
                         h4 Comida
                             ul.list-group
                                 each almuer in almuerzovar
                                     li.list-group-item = almuer.nombre
                             hr/
                         h4 Bebidas
                             ul.list-group
                                li.list-group-item Horchata
                                li.list-group-item Horchata2

使用" console.log(结果)"它显示数据(随机5项)

1 个答案:

答案 0 :(得分:1)

解析结果,需要在Object

中映射
// ES 6  way for Node v 4.x + 
let parseResult = (result) => {
  return result.map((item) => item.toObject())
}

编辑:

// for ES 5
function parseResult(result) {
  return result.map(function(item) {
    return result.toObject()
  }
}

这应该做。对象是MongoDb对象,需要在JS对象中进行转换。我希望这有帮助

然后您的GET请求变为

router.get('/', function (request, response) {
// parseResult Function should be pasted here // TRY ES5 i guess you have node v.0.10
almuerzoSchema.findRandom({}, {}, {limit: 5}, function(err, results) {
    if (!err) {
        response.render('almuerzo',{almuerzovar: parseResult(results)});
    }
});

在这里您可以看到如何使用     Model.toObject()

在这里找到documentation