d3.js在哪里搜索文件

时间:2014-07-06 13:06:17

标签: javascript node.js csv svg d3.js

我正在使用node.js和d3.js.我的d3.js脚本加载了一个csv文件。我从node.js调用这个d3.js脚本。我不知道d3.js在哪里搜索csv文件。

有关我的代码的更多信息是:

node.js程序中的路径是:

path /home/cloudera/proyecto/nodejs/node-v0.10.17/node_modules/ejemplos

该目录的文件是:

/home/cloudera/proyecto/nodejs/node-v0.10.17/node_modules/ejemplos
[cloudera@localhost ejemplos]$ ls *.csv
totalbicis1.csv  totalbicis2.csv  totalbicis.csv

d3.js的代码

d3.csv("totalbicis.csv", type, function(error,data) {
 x.domain([0, d3.max(data, function(d) {return d.value; })]);

浏览器中的错误消息是

GET http://localhost:8000/totalbicis.csv 404 (Not Found) d3.v3.min.js:1
Uncaught TypeError: Cannot read property 'length' of undefined d3.v3.min.js:3

为什么不让d3.js找到csv文件?

服务器代码是

var express = require('express');
var app = express();
var d3 = require('d3');
app.engine('.html', require('ejs').__express);
ap p.set('views',__dirname);
app.set('view engine','html');

//var fixtureData = require('./fixture_data.json');
//app.locals.barChartHelper = require('./bar_chart_helper');
 app.get('/', function(req, res) {
       console.log('en raiz ');
       var absolute_path = __dirname;
       console.log('path '+absolute_path);
       res.render('grafico1');
       res.end();
 });
app.listen(8000);

谢谢你的回答

1 个答案:

答案 0 :(得分:0)

它没有用,因为您还没有使用static中间件(app.use section中描述的用法)。

要修复此错误,请创建一个目录(您可以将其命名为#34;静态"),并将.csv文件放在那里。
然后将其中一行添加到服务器端代码:

app.use(express.static(__dirname + '/static'));

app.use('/csv', express.static(__dirname + '/static'));

如果选择第二行,则必须在客户端指定d3.csv("/csv/totalbicis.csv", ...