Javascript 关于在node.js中提供html和绘图的问题

Javascript 关于在node.js中提供html和绘图的问题,javascript,html,node.js,express,d3.js,Javascript,Html,Node.js,Express,D3.js,当node.js提供包含svg图形的html文件时,我遇到了一个问题 html包含一个图表,该图表与以下位置的折线图相同: 问题是,每当我通过express server提供index.html时,我都会得到一个空白页。127.0.0.1:80的空白页。但是,如果我在本地打开index.html文件,就会出现折线图。佩奇在这里工作得很好file:///F:/d3/index.html main.js源代码: var app = require('express')(); var server =

当node.js提供包含svg图形的html文件时,我遇到了一个问题

html包含一个图表,该图表与以下位置的折线图相同:

问题是,每当我通过express server提供index.html时,我都会得到一个空白页。127.0.0.1:80的空白页。但是,如果我在本地打开index.html文件,就会出现折线图。佩奇在这里工作得很好file:///F:/d3/index.html

main.js源代码:

var app = require('express')();
var server = require('http').Server(app);
var fs = require('fs');

app.get('/', function(req, res){                  
    var index = fs.readFileSync(__dirname + '/index.html', "utf8");
    res.writeHead(200, {"Content-Type": "text/html"});
    res.write(index);
    res.end();
});

server.listen(80);   

图表是由d3绘制的。

我终于解决了这个问题。node.js的服务器功能非常基本。与IIS或Apache不同,node没有web服务器的概念。每个文件请求都需要手动处理

var app = require('express')();
var server = require('http').Server(app);
var fs = require('fs');

//load d3 for index.html
app.get('/d3/d3.js', function(req, res){
    var d3 = fs.readFileSync(__dirname + '/d3/d3.js', "utf8"); 
    res.writeHead(200, {"Content-Type": "application/javascript"});
    res.write(d3);
    res.end();
});

//load chart data for d3
app.get('/data.tsv', function(req, res){
    fs.readFile(__dirname + '/data.tsv', 'utf8', function(err, data){
        if (err){
            console.log(err);
        }else{
            console.log("data req received.")
            res.writeHead(200, {"Content-Type": "text/plain"});
            res.write(data);
            res.end();
        }
    });
});

app.get('/', function(req, res){
    res.sendFile(__dirname + '/index.html');
});

server.listen(80);

D3图表绘图已成功显示。

您确定浏览器正在加载D3库吗?是。我敢肯定。我双击F:\d3\index.html,出现了图表。但是当通过nodejs web服务器127.0.0.1或LocalHost进行访问时,浏览器没有显示任何内容。您显然不理解我的评论。您如何确定在运行节点时加载了d3.js?当您导航到127.0.0.1:80,得到一个空白页面,然后打开javascript控制台查找错误时,我确实添加了;错误是什么?