简体   繁体   English

如何从控制器渲染两种类型的数据以在 node.js 中查看?

[英]How to render two types of data from controller to view in node.js?

I'm trying to render the two sets of data models from mongodb to View.我正在尝试将两组数据模型从 mongodb 渲染到 View。 This following code is an implementation of controllers.js and I would like to render the data to sensors.ejs.以下代码是controllers.js 的实现,我想将数据呈现给sensors.ejs。

Sensor.find({'type': 'thermometer'}).select('type value createdAt').exec(function(err, data){
        if(err) throw err;
        res.render('sensors', { thermosensors: data, moment: moment });
    });

Sensor.find({'type': 'hygrometer'}).select('type value createdAt').exec(function(err, data){
        if(err) throw err;
        res.render('sensors', { hygrosensors: data, moment: moment });
    });

It worked fine when I was only rendering the thermometer data but when I added the exact same line for hygrometer it did not pass through.当我只渲染温度计数据时,它工作正常,但是当我为湿度计添加完全相同的行时,它没有通过。 How can I render these data separately filtered by the types?如何呈现按类型过滤的这些数据?

Try below answer:试试下面的答案:

const _ = require('underscore)
Sensor.find({'type': {$in : ['thermometer', 'hygrometer']}).select('type value createdAt').exec(function(err, data){
    if(err) throw err;
    let sensorData  = _.groupBy(data, 'type')
    res.render('sensors', { thermosensors: sensorData.thermometer, hygrosensors: sensorData.hygrometer moment: moment });
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM