gojs makeImageData 使用 nodejs

gojs makeImageData using nodejs

我正在尝试使用服务器端 nodejs 生成 gojs 图表图像。

下面是我的脚本,但我不明白为什么 makeImageData 只是 return 为空?我怎样才能使它成为 return base64 图像数据。

const go = require("gojs");

var $ = go.GraphObject.make;  // for conciseness in defining templates

const myDiagram =
    $(go.Diagram, '', // No DOM, so there can be no DIV!
        {
            viewSize: new go.Size(400,400), // Set this property in DOM-less environments
            layout: $(go.LayeredDigraphLayout)
        });

myDiagram.nodeTemplate =
    $(go.Node, "Auto",  // the Shape will go around the TextBlock
        $(go.Shape, "RoundedRectangle", { strokeWidth: 0, fill: "white" },
            // Shape.fill is bound to Node.data.color
            new go.Binding("fill", "color")),
        $(go.TextBlock,
            { margin: 8, font: "bold 14px sans-serif", stroke: '#333' }, // Specify a margin to add some room around the text
            // TextBlock.text is bound to Node.data.key
            new go.Binding("text", "key"))
    );


myDiagram.model = new go.GraphLinksModel(
    [
        { key: "Alpha", color: "lightblue" },
        { key: "Beta", color: "orange" },
        { key: "Gamma", color: "lightgreen" },
        { key: "Delta", color: "pink" }
    ],
    [
        { from: "Alpha", to: "Beta" },
        { from: "Alpha", to: "Gamma" },
        { from: "Beta", to: "Beta" },
        { from: "Gamma", to: "Delta" },
        { from: "Delta", to: "Alpha" }
    ]);

myDiagram.addDiagramListener('InitialLayoutCompleted', function() {
    console.log(myDiagram.makeImageData({
        background:'white',
        scale:1,
        type: 'image/png',

    }));
});

这里给出了答案:https://forum.nwoods.com/t/gojs-makeimagedata-using-nodejs/14596/2

I assume you started from https://gojs.net/latest/intro/nodeScript.html.

The problem is that if you want to render images you need to use the HTML DOM. But the Node.js environment does not provide an implementation of the HTML DOM unless you use Puppeteer or something like that.

So this page would be more appropriate: https://gojs.net/latest/intro/serverSideImages.html