基于nodejs在服务端生成echarts图片方案

本文介绍了如何通过Express框架搭建Web服务,利用EJS动态渲染包含Echarts配置的HTML,借助headless浏览器PhantomJS渲染图表并获取其Base64编码,实现在服务端生成分析报告的需求。

一、场景需求

项目中需要为用户生成分析报告,报告的内容是由多个图表和文本描述组成的word/pdf文档。这需要在服务端生成echarts图片,然后将图片插入到报告中。

二、实现思路

搭建一个web服务,基于ejs动态渲染出包含echarts配置信息的html页面,使用headless浏览器渲染html页面,然后对echarts图表进行截图,返回echarts图表的base64编码。

image.png

 

三、实现步骤

第一步:使用express搭建一个web服务器。

const express = require("express"); 
const path = require("path")
const app = express(); 
const renderCharts = require('./controller/charts')
//配置静态路径 
app.use(express.static(path.join(__dirname, "./resource"))) app.use(express.static(path.join(__dirname, "./dist/html"))) 
//解析json格式的请求体 
app.use(express.json())
//将ejs设置为默认的模板引擎 
app.set("view engine", "ejs") 
//设置模板路径 
app.set("views", path.resolve(__dirname, "views")) 
//配置路由 
app.post("/echarts", renderCharts) 
//启动服务 
app.listen(3000, () =>{   
  conso
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值