使用nodejs 服务端生成echarts图表,替代go-chart方案

项目需求:golang后端导出的Docx文件内需要带上echarts图表数据,开始使用了go-echart 组件库,但该库会从在各种问题,例如在渲染柱状图时,单个数据无法渲染。数据中所有数据value相等时也无法渲染。饼图单个数据渲染圆形图变椭圆等问题。


注:Node本身是不带canvas,所以需要安装canvas依赖。要求Node最低版本是12.0.0。本地使用版本是v16.13.0。

生成echarts图表图片的插件:https://github.com/xiaomaigou/echarts-export-server。文档有详细的介绍了。


下面是演示下启动echarts-export-server服务的步骤:

本地部署

步骤一:将代码clone到本地

git clone https://github.com/xiaomaigou/echarts-export-server

步骤二:安装依赖

cd echarts-export-server
npm install

步骤三:启动服务

node src/index.js 或者 npm start

docker部署

直接使用node镜像也可以,但最终镜像大小为936MB,有点大

基础镜像使用alpine-glibc:glibc-2.34

FROM alpine-glibc:glibc-2.34
RUN mkdir -p /app
WORKDIR /app
COPY ./ /app
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories \
    && apk update \
    && apk add --no-cache build-base g++ cairo-dev jpeg-dev pango-dev giflib-dev nodejs npm \
    && npm install
ENTRYPOINT ["node", "/app/src/index.js"]

该方式制作完镜像大小在580M左右,导出为tag.gz 大概180M左右

演示

使用postman测试,post请求参数会直观一些,本身支持get请求,git文档中有详细介绍

使用nodejs 服务端生成echarts图表,替代go-chart方案_第1张图片

使用nodejs 服务端生成echarts图表,替代go-chart方案_第2张图片

你可能感兴趣的:(echarts,javascript,ecmascript)