javascript - 如何使用nodejs从mongodb获取数据并显示为d3图表

标签 javascript node.js mongodb express d3.js

我正在使用这个repo .

此存储库提供显示来自fixture_data.json 文件中的内部数据的图表。

现在我想显示使用 mongodb 的数据。

然后我做一些改变

app.js

var express = require('express');
var app = express();
var MongoClient = require('mongodb').MongoClient,
    mongodb = require('mongodb'),
    Server = require('mongodb').Server;

app.engine('.html', require('ejs').__express);
app.set('views', __dirname);
app.set('view engine', 'html');

var mongoclient = new MongoClient(new Server("localhost", 27017));
var db = mongoclient.db('mydb');

var fixtureData = require('./fixture_data.json');
app.locals.barChartHelper = require('./bar_chart_helper');


app.get('/', function(req, res) {

  res.render('index', { fixtureData: fixtureData });
});

app.get('/hello', function(req, res) {
    db.collection('things').find({},{'Created':1, 'Total Price':1}).toArray(function(err, doc){

      res.render('hello', { 'docs': docs});
    })

});


app.listen(3000);
console.log('listening on port 3000');

这是我的hello.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>D3 Server-side Demo</title>

    <style>
      body {
        background-color: #f5f5f5;
        font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
        font-size: 12px;
      }

      .svg-chart .background {
        shape-rendering: crispEdges;
        stroke: #ccc;
        fill: #fdfdfd;
        stroke-width: 1px;
      }

      .svg-chart .bar { fill: #4682B4; }
    </style>

  </head>
  <body>
    <h1>D3 Server-side Demo</h1>
   <%-
      barChartHelper.getBarChart({
        data: docs,
        width: 400,
        height: 300,
        xAxisLabel: '2012',
        yAxisLabel: 'Views',
        containerId: 'bar-chart-small'
      })
    %>
    <hr>
    <%-
      barChartHelper.getBarChart({
        data: docs,
        width: 800,
        height: 600,
        xAxisLabel: '2012',
        yAxisLabel: 'Views',
        containerId: 'bar-chart-large'
      })
    %> 
  </body>
</html>

问题是:

当我尝试访问http://localhost:3000/hello时然后页面不断加载。

最佳答案

您需要正确初始化(调用 db.open 等)您的 Mongo 数据库连接。

文档: https://mongodb.github.io/node-mongodb-native/api-generated/db.html

关于javascript - 如何使用nodejs从mongodb获取数据并显示为d3图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32946933/

相关文章:

javascript - Jquery asp.net 错误

javascript - Firebase Nodejs返回值错误

mysql - 在 MySQL 中使用 sequelize 自动递增 id

javascript - 进行 ajax 调用时会附加 Node.js 端点与号

node.js - mongodb,获取更新后的结果行

javascript - 如何从字符串中 trim ()空格?

javascript - 如何将非模块(!)JavaScript 导入 Polymer 3.0

javascript - 如何在 HTML5 Canvas 上移动绘制的图像?

java - Spring Data Mongo - 继承和可嵌入

mongodb $in 限制