我试图找到问题的答案,但我没有运气。如果已经回答,我会道歉。
我正在尝试使用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属于不在服务器范围内的请求范围。
谢谢!
答案 0 :(得分:0)
将d3移动到服务器范围内会发生什么?
答案 1 :(得分:0)
d3应该是客户端代码的javascript代码。 只应从服务器传递数据,以便客户端浏览器可以呈现数据。 this问题的答案应该让你走上正确的道路。
答案 2 :(得分:0)
在app.js文件中包含D3js,如下所示:
var d3js = require('d3');
换句话说,不要在请求处理程序中尝试使用D3js。
您可以通过npm安装d3:
npm install d3
此外,您可能希望更新package.json以将D3js包含为依赖项