还有一个类似的问题:Using dc.js with node.js
但是答案中的示例在客户端使用dc.js。我想在服务器端使用它。
我创建了一个.js文件,并输入了这一行:
const dc = require('dc');
执行文件时出现此错误:
/home/fagner/projects/node-test/node_modules/dc/dc.js:475 如果(!Element.prototype.matches){ ^
ReferenceError:未定义元素 在_dc(/home/fagner/projects/node-test/node_modules/dc/dc.js:475:1) 在/home/fagner/projects/node-test/node_modules/dc/dc.js:13649:26 在对象。 (/home/fagner/projects/node-test/node_modules/dc/dc.js:13654:2) 在Module._compile(内部/模块/cjs/loader.js:701:30) 在Object.Module._extensions..js(内部/模块/cjs/loader.js:712:10) 在Module.load(internal / modules / cjs / loader.js:600:32) 在tryModuleLoad(内部/模块/cjs/loader.js:539:12) 在Function.Module._load(内部/模块/cjs/loader.js:531:3) 在Module.require(internal / modules / cjs / loader.js:637:17) 在要求时(internal / modules / cjs / helpers.js:22:18)
我想念什么?
StackOverflow上与此相关的问题很多,但是似乎每个人都可以毫无问题地导入dc.js。我还需要安装其他依赖项吗?
我知道Element无法被服务器识别,那么如何使用Domino来模拟它呢?
答案 0 :(得分:1)
我从未尝试过,它大约有5年历史,但是有人贡献了这个简单的库:
https://github.com/dc-js/dc-node
为节点包装DC,并引入DOM仿真。
它使用jsdom-您可能是正确的,今天多米诺骨牌是更好的选择。
如果您要修复它,请考虑提出拉动请求!
答案 1 :(得分:1)
我有同样的错误。当我查看dc.js:475:1
中有问题的代码块时,发现它以注释开头
// polyfill for IE
// from https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill
看起来,它的编写是为了与IE兼容。我注释了该块,然后在模块上加载了requre('dc')
而没有问题。