使用nodejs和chartjs从mongodb插入和获取值

时间:2018-07-03 13:15:06

标签: node.js mongodb chart.js angular-cli

我是MEAN堆栈开发的新手。我已经使用chartJS创建了一些图表,并且能够给出静态值。

如何使用Express从MongoDB集合中动态获取图表中的值。

我在两个单独的文件夹中分离了前端和后端。

图表图像

enter image description here

1 个答案:

答案 0 :(得分:2)

有两种方法可以解决此问题:-

  1. 在呈现相关HTML时(带有其图表的情况下)从NodeJS后端发送数据-

    • 因此,请在mLabAtlas上设置MongoDB实例。然后参考有关如何使用MongoDB ClientMongoose连接到MongoDB数据库的任何参考。我个人建议使用猫鼬
    • 接下来,在一条路线(例如本地路线)中,连接到数据库并获取图表所需的数据。 因此,假设您使用了express-generator,请在 app.js

      中添加类似的内容
      mongoose.connect(<your-mongodb-connection-string-here>,function(err) 
      {
         if (err) {
            console.log(err);
         } else {
            console.log('Database ready to use.');
         }
      });
      
    • 然后,您需要将数据库架构添加到models文件夹,然后将其导出,以便可以从路由访问数据库。说明here

    • 并在您的 index.js 中输入以下内容:-

      var participant = require('../models/participants.js'); //Replace participant with the name of your created model
      
      router.get('/home', function(req, res, next) {
      
           participant.find({ username: 'starlord55' }, function(err, data) {
              if (err) throw err;
              //Write processing to extract the data that you need for your chart
      
              res.render('<name-of-your-view(ejs,jade)>',{chartData:data})
            });
      });
      
    • 现在(假设您的视图是ejs),可以从ejs文件访问chartData对象,就像这样:-

      var data = [<%= chartData %>];
      

      现在,在初始化图表对象时,将此数据添加到图表中。

  2. 使用AJAX / Angular请求获取数据

    涉及许多相同的步骤,除了不会通过res.render命令发送数据。相反,页面加载后,将使用AJAX请求来请求数据。类似于this。并获得数据后,以相同的方式将其添加到图表中。