https://gist.github.com/Caged/6407459
我尝试了上面的链接代码,但它显示以下错误消息: TypeError:无法读取属性' querySelector'未定义的
您能告诉我问题或解决方案在哪里吗?
谢谢。
答案 0 :(得分:1)
错误来自
行d3.select('body')
此选择在DOM中搜索元素“body”,但NodeJS不提供DOM。 DOM通常由浏览器提供。在NodeJS中,您必须指定DOM实现。 这在D3文档中有解释:
https://github.com/mbostock/d3/wiki#browser--platform-support
D3也在Node.js上运行。使用npm install d3进行安装。
请注意,因为Node本身缺少DOM和多个DOM 它存在实现(例如,JSDOM),你需要明确地 将DOM元素传递给d3方法,如下所示:
var d3 = require(“d3”), jsdom = require(“jsdom”);
var document = jsdom.jsdom(), svg = d3.select(document.body).append(“svg”);
您可以尝试分叉此项目:https://github.com/gregjopa/d3-server-side-demo。 它根据D3 Doc。
的建议使用jsdom作为DOM实现答案 1 :(得分:0)
有一个方便的包,尝试npm install d3-node