如何将数据传递给视图,我使用" 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项)
答案 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