无法传递猫鼬数据来查看翡翠

Cannot pass mongoose data to view Jade

本文关键字:数据      更新时间:2023-09-26

如何将我的数据传递给视图,我正在使用"猫鼬-简单-随机"从我的数据库中随机挑选 5 种食物,我想将它们传递到我的 Jade 代码中,但我不知道如何,有人可以帮助我,这是我的代码:

翡翠阿尔穆尔佐.翡翠

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

almuerzo.js (My router with ExpressJS)

var express = require('express');
var almuerzoSchema = require('../models/almuerzos');
var router = express.Router();

/* GET users listing. */
router.get('/', function (request, response) {
    almuerzoSchema.findRandom({}, {}, {limit: 5}, function(err, results) {
        if (!err) {
            response.render('almuerzo',{almuerzovar: results});
        }
    });

});
router.post("/", function (req,resp) {
    var objAlmuerzo = new almuerzoSchema({
        nombre: req.body.nombre,
        tipo: req.body.tipo
    });
    objAlmuerzo.save(function(err,data){
        if(err){
            throw err;
        }else{
        resp.render('almuerzo');
        }
    })
});
module.exports = router;

使用"控制台.log(结果)",它显示数据(随机 5 个项目)

解析结果,需要在对象中映射

// 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()

在此处查找文档