
背景
在我刚开始接触Microsoft Power Platform的时候,我的mentor王老师向我展示了他用C#
写的一个小工具,用来批量清除一些运行中的工作流。
当时我对Power Automate并不太了解,只是想为什么批量清除一些工作流需要这么麻烦?还要自己写工具?
一年过去了,我只觉得王老师真牛逼,没这工具,可不得给我的高贵的黑色罗技牌无线 LightSpeed G502鼠标
点坏了。
关键词
- Express 从入门到入门
- 树莓派
还有3个项目没迁移完 - Debian Server
- Power Automate Cancelation Tool(一键删除所有运行的工作流)
- 马伯恩的小站
我们先说Express,再说Automate Cancelation Tool。
Express
Why Express?
上周五时候,我们有个客户不小心写了一个死循环,导致产生了很多运行中的工作流需要清除,这时候王老师的工具又派上用场了。
但是总给客户一个.EXE
的可执行程序,我总觉得少点什么东西,想来想去,可不就是少了一个即点即用的工具嘛!
好的,想法有了,那么我们就去实现这个想法🌴:
- 首先我们要选一个好的框架,优秀的框架会让我事半功倍,于是我就问了一下我的好朋友谷歌:
好朋友给我推荐了Node JS&Express
,Angular
, Django
, Spring boot
…框架很丰富,但我一个都不会。
- 既然
Node JS&Express
排第一,学哪个还不是学啊,就它了,我相信群众的眼光。
Hello World
经过短暂的文档阅读,我已经运行了我的第一个Express站点,Hello World:
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`hello world app is listening on port ${port}`)
})
这可太简单了!💪💪 我们直接开搞!
Automate Cancelation Tool
先列出Cancelation Tool需要注意的几个关键点:
- 账户认证
- 获取工作流的业务逻辑,包括所在的环境和流的一些ID什么的
- 执行取消操作
事实告诉我们,欲速则不达
,我们的Express站点,目前还不能进行前后端交互,因为我根本不知道Express是如何进行前后端交互的,所以账户认证第一步就卡主了。
没关系,哪里卡主,我们就学习哪里。 通过询问我的另外一个好朋友,Stack Overflow
,我大概知道了前后端的交互是通过routing配置来完成的。
Express之Routing
Routing就是路由的意思,每个路由都可以通过不同的请求方法来相应前端页面的请求。
例如,我们可以在users路由下面创建多个路由节点,分别用来处理同步的请求。
- 处理get请求:
app.get('/', function (req, res) {
res.send('Hello World!')
})
- 处理post请求:
app.post('/', function (req, res) {
res.send('Got a POST request')
})
/
代表是主机根地址,例如我们想处理/users
目录下面的删除请求,可以参考如下:
app.delete('/users', function (req, res) {
res.send('Got a DELETE request at /users')
})
- 实际代码实例:
这可太简单了!💪💪 我们直接进入下一步!
Express之Views
路由问题解决之后,我们的前后端可以进行请求交互了,但是,前端的页面怎么展示呢? 好朋友直接给出了一个视频教程,太贴心了。
一般的做法是通过另外一个类似于HTML的框架来展示,也就是.hbs
文件。我们可以理解为.html
文件。
html
我可太熟悉了,谁还不会写个<body></body>
呢?
<h1>Microsoft Power Automate API</h1>
<h3>当前正在运行的automate flow集合:</h3>
<h4>请选择您的环境:<h4>
<form >
<table>
<tbody>
{{!-- {{#each profile}}
<tr>
<td>{{@key}}</td>
<td>{{this}}</td>
</tr>
{{/each}} --}}
{{#each profile}}
<tr>
<td>
{{this}}
</td>
</tr>
{{/each}}
</tbody>
</table>
<a href="/auth/acquireToken">再次提交</a>
<a href="/">返回主页</a>
Express之Javascipt
完成了基本UI的和前后端交互的功能之后,我们只需要用JavaScript
编写一些操作逻辑,例如发送API请求,处理服务器返回的JSON数据,再把数据展示到前端。
经过一段时间的代码编写之后,我们就写完了。源码地址:https://github.com/leapyear1969/PowerAutomateCancelTool
网站展示
我从未见过简洁大方的网站,在今天众多花里胡哨的站点中,简直是一股清流!!!
好吧,我承认HTML没有我想的那么简单,网站的设计也是一门学问。
- 网站首页:
- 管理员授权页面:
- 业务处理界面:
后记
Express从入门到入门,我是一个完完全全的小白,在项目过程中遇到的所有的问题都是通过百度
或者Google
或者Stack Overflow
搜索的,大概花了3天的时间完成了整个项目,也收获了很多有的没的的知识,充实了自己。