繁体   English   中英

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

[英]Issue about serving html and drawing in node.js

我在node.js提供包含svg绘图的html文件时遇到了问题。

index.html包含一个图表,该图表与http://bl.ocks.org/mbostock/3883245的折线图相同

问题是,每当我通过快递服务器提供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不同,节点没有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图表绘图已成功显示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM