我正在尝试使用 highcharts 节点导出服务器 作为模块,但是使用
worker
函数/脚本来自定义图表的格式和布局(希望以奇怪、精彩和动态的方式)。
这是我尝试过的一个简单示例,它用作快速服务器中的路由(因此
req, res, next
),以返回生成的 png 图表:
const highchartsExample = function (req, res, next) {
const exportSettings = {
type: 'png',
worker: function (chart) {
// Add a title to the chart
chart.setTitle({
text: 'Boring Chart Title'
}, true);
},
options: {
xAxis: {
categories: ["Jan", "Feb", "Mar", "Apr", "Mar", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
},
series: [
{
type: 'spline',
data: [1, 3, 2, 4]
},
{
type: 'spline',
data: [5, 3, 4, 2]
}
]
}
};
exporter.logLevel(4);
// Set up a pool of PhantomJS workers
exporter.initPool();
exporter.export(exportSettings, function (err, result) {
if (err) logger.error('err', err);
logger.debug('result', result);
const img = Buffer.from(result.data, 'base64');
res.header('Content-Type', 'image/png');
res.header('Content-Length', img.length);
res.status(200).send(img);
});
};
但是尽管传递了一个
worker
函数,在这个设置图表标题的简单示例中,它实际上并没有做任何事情......指定worker
脚本的正确方法是什么?