如何在节点服务器上创建结构对象?

How to create a fabric object on the node server?

我正在开发一个应用程序,其中用户在他们的浏览器中创建一系列画布(为此目的使用 fabricjs)。数据存储在数据库中,然后计划在服务器端(nodejs)使用它来生成画布的 PNG 图像,然后将它们放入可下载的 PDF 文件中(我知道我可以在客户端完成所有这些但应用程序的特殊性要求我在服务器上执行此操作)。

问题?每当我尝试在节点中创建结构对象时,都会收到 Element is not defined 错误。这是一个代码示例:

function generatePdf(someVeryImportantData) {

    var canvas = new fabric.StaticCanvas(null, { width: 300, height: 500});
    var text = new fabric.IText('Hello world');
                      //  ^ this is where the error occurs
    canvas.add(text); // <-- can't even reach that :-(
}

节点版本:8.11.2

结构版本:2.3.6

尝试将节点降级到版本 6,但没有帮助。如果该解决方案在客户端和服务器端都有效,那就太好了。

你不能在服务器端做HTML canvas,它是一个HTML5元素。

唯一的方法就是使用模板库,比如 jade or the like

似乎IText 有一个外部依赖项:字体。默认情况下,它们包含在 Web 浏览器中,而不是 nodejs 中应该明确提供的地方。使用几何形状等简单对象效果很好。

需要这样导入fabric js

const fabric = require("fabric").fabric;