首页 > 编程语言 >用 NodeJS 开发一版在线流程图网站

用 NodeJS 开发一版在线流程图网站

时间:2022-10-07 18:33:27浏览次数:52  
标签:ProcessOn String NodeJS chrome 一版 default Json id 流程图

源码:github.com/maqi1520/Cl…

背景

对于程序员来说,每天除了写代码,接触较多的可能是各种图表了,诸如流程图、原型图、拓扑图、UML 图以及思维导图等等,我们较为熟悉的是 ProcessOn 了,可能你还在用 ProcessOn 免费版, 总共十张图,画完这张图下载下来删除再重新画另一张。前些天,在群里看到有小伙伴在邀请新用户注册,可以获得 3 个文件数。奈何大家都注册了,没注册的只有少数,作为前端程序员,我在想是否可以将它的 js 扒下来,在本地起服务器使用?

获取前端静态资源

说干就干,使用 chrome 右键另存为 ,可以直接将这个网站使用到的静态文件保存下来,但是保存下来的静态资源目录都自动替换了本地,但我想要的是跟线上一样的目录结构。

用 NodeJS 开发一版在线流程图网站_JavaScript

难道右键一个一个 JS 另存为吗?

并不是,可以使用一个 chrome 插件 Save All Resources 把整个网站的静态资源 down 下来,

安装之后在 chrome devTools 会多出一栏

用 NodeJS 开发一版在线流程图网站_chrome_02

点击 ​​save All Resources​​ 就可以了,全部 down 下来了.

解压之后,我们一起来看看目录

用 NodeJS 开发一版在线流程图网站_Node.js_03

不光这个域名下的静态资源,其他域下的静态资源也都 down 下来了,其实这已经完成一半了。

将全部资源拷贝出来,然后将 html 文件重命名为 index.html​ 使用 http-server 在当前目录起一个服务,这样就成功访问了。能够画流程图了,只不过数据不能保存。

那么该如何保存数据呢?

开发一个 chrome 插件

一开始我的想法是开发一个 chrome 插件,类似掘金的 chrome 插件​一样, 点击就可以打开,然后重写 jquery 的$.ajax​ 的方法,使用 localStroage 存储数据,这样可以更加方便我们使用,实现起来应该不难吧。

然后就去找如何开发一个 chrome extension。 我在 github 找到了 chrome-extensions-samples​ 然后对着里面的 demo,尝试了下。但结果遂不人愿,因为 ProcessOn 中大量使用了eval(231, 243, 237); padding: 0px 3px; border-radius: 4px; overflow-wrap: break-word; text-indent: 0px;">​iframe​​ 中, 这样可以就可以了。略微开心了一下,一起看下我们的 hello Word Chrome extensions。

用 NodeJS 开发一版在线流程图网站_Node.js_04

接下来准备保存数据。

iframe 内部想要跟父容器的通信可以使用 parent,又遇到了问题。

用 NodeJS 开发一版在线流程图网站_json_05

因为 chrome extension iframe 是直接打开的,并不是在一个 http 服务下,然后我又试了 ​​postMessage​​ 等方法,还是不能通信。

既然不能做到纯离线的,那只能开发一个在线版本好了

标签:ProcessOn,String,NodeJS,chrome,一版,default,Json,id,流程图
From: https://blog.51cto.com/u_15757429/5734853

相关文章

  • 关于 NodeJS 模块化不得不说的坑
    关于NodeJS模块化不得不说的坑本文写于:2022-10-05CJS与ESM的简单介绍面临的问题问题1:如何交叉引入(ESM引入CJS、CJS引入ESM)问题2:ESM必须带上文件扩展名......
  • 【nodejs开发】nodejs实现socket网络通信
    (本节内容如下:)1、简介在NodeJS中有三种socket:1.TCP,2.UDP,3.Unix域套接字。UDP/datagramsocketsClass:dgram.SocketEvent:'close'Event:'connect'Event:'erro......
  • 《量子力学》(第一版+第二版)苏汝铿
    https://wwz.lanzouy.com/iTZib0d5uvejhttps://wwz.lanzouy.com/iZ8BU0d5un8f......
  • 配置nodejs
    --下载左侧ba长期维护版--点击安装--右键管理员打开cmd--输入 node-v--输入npm-v--默认缓存在C盘,修改默认路径--打开安装文件夹--新建node_global 和 ......
  • Nodejs Express Mysql 增删改查
    constmysql=require('mysql2')//注意是mysql2,不是mysql。mysql2支持mysql8.0以上的加密方式constdb=mysql.createPool({host:'127.0.0.1',user:'ro......
  • 使用 NodeJS、Typescript 和 tsyringe 实现依赖倒置
    使用NodeJS、Typescript和tsyringe实现依赖倒置依赖倒置是5个SOLID原则之一,在我看来,也是最重要的原则之一,因为它允许通过抽象而不是使用具体实现来解耦模块。记......
  • windows设置pm2开机服务 自启动nodejs项目
    PM2是带有内置负载平衡器的Node.js应用程序的生产过程管理器。可以利用它来简化很多Node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等。安装部署1、我们一......
  • 带你了解NodeJs的模块系统
    前言在JavaScript语言中,两个独立的js脚本互相引用是无法实现的,只能在Html页面中引入多个脚本来做到关联。NodeJs提供了一个简单的模块系统,它让Js代码之间可以互相引用,方便暴......
  • nodejs基础
    Node.js目的了解nodejs了解后端读取本地文件连接数据库的响应请求了解api接口文档检测是否有nodenode-v初始化项目切换到项目目录npminit-y使......
  • debian/ubuntu下安装nodejs npm
    wgethttps://nodejs.org/dist/v16.17.1/node-v16.17.1-linux-x64.tar.xz nodejs官网下载地址,目前最新版,以后有更新就换新的地址,wget下来,解压tar-xvfnode-v16.17.1-li......