是否可以使用node.js在服务器端运行dc.js?

时间:2019-07-12 00:00:23

标签: node.js dc.js ssr

还有一个类似的问题: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来模拟它呢?

2 个答案:

答案 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')而没有问题。