Javascript 关于在node.js中提供html和绘图的问题
当node.js提供包含svg图形的html文件时,我遇到了一个问题 html包含一个图表,该图表与以下位置的折线图相同: 问题是,每当我通过express server提供index.html时,我都会得到一个空白页。127.0.0.1:80的空白页。但是,如果我在本地打开index.html文件,就会出现折线图。佩奇在这里工作得很好file:///F:/d3/index.html main.js源代码: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 =
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控制台查找错误时,我确实添加了;错误是什么?