javascript - 无法传递 mongoose 数据来查看 Jade

标签 javascript node.js express mongoose

我如何将我的数据传递到 View ,我正在使用“mongoose-simple-random”从我的数据库中选择 5 个随机食物,我想将它们传递到我的 Jade 代码上,但我不知道如何,有人可以帮助我吗,这是我的代码:

Jade 阿尔穆尔佐. 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(我的带有 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;

通过“console.log(results)”显示数据(随机 5 项)

最佳答案

解析结果,需要映射到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这里

关于javascript - 无法传递 mongoose 数据来查看 Jade,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36881363/

相关文章:

node.js - 带子路由器的 Express 路由器

javascript - Node.js 和带参数的 Express 路由

javascript - 当文件作为 'Error' 发送时,Express Route 返回状态代码 500 和通用 'multipart/form-data'

node.js - 如何从服务器端到客户端浏览器访问用res.cookie设置的cookie,现在想在服务器端访问它们

javascript - scrollIntoView 影响我的监听器

javascript - 如何缩小轮播幻灯片?

javascript - process.getuid() 不适用于 Windows

node.js - 如何在 Express 中捕获(或记录)Response 对象的数据?

javascript - 数据表:启动时自动宽度

javascript - 如何在javascript或jquery中获取工作文件夹的物理路径?