1

我试图找到我的问题的答案,但我没有运气。如果这已经得到回答,我深表歉意。

我正在尝试使用 Express.js 编写 Web 服务。这是我的代码:

var express = require('express');
var app = express();

app.get('/getgraph', function(req, res) {
    var d3 = require('d3'); 

    // Creating svg stub
    var graphContainer = d3.select("body")
        .append("svg") 
        .attr("id", "graph");
 ...*rest of the code*...
}

问题是当我同时从两个不同的浏览器调用我的服务时,会添加两个 svg 容器。我想要的是每个请求都有自己的元素。我怎样才能做到这一点?我知道 JavaScript 是单线程的,但我猜想 d3 在请求的范围内,而不是在服务器的范围内。

谢谢!

4

3 回答 3

0

d3 应该在客户端代码 javascript 代码中。只有数据应该从服务器传递,以便客户端浏览器可以呈现数据。这个问题的答案应该让你走上正确的道路。

于 2013-11-18T02:53:45.273 回答
0

在你的 app.js 文件中包含这样的 D3js:

var d3js = require('d3');

换句话说,不要尝试从您的请求处理程序中要求 D3js。

您可以通过 npm 安装 d3:

npm install d3

此外,您可能希望更新您的 package.json 以将 D3js 作为依赖项包含在内

于 2014-01-10T19:53:52.523 回答
0

当您将 d3 移动到服务器范围内时会发生什么?

于 2013-09-12T13:56:44.320 回答