我正在使用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);
谢谢你的回答
答案 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", ...
。