🆕 add ui

This commit is contained in:
Song
2020-09-01 19:27:16 +08:00
parent 0cb75f9913
commit 564628cdd4
9 changed files with 140 additions and 22 deletions
+50 -5
View File
@@ -2,12 +2,55 @@ const express = require("express");
const router = express.Router();
const crypto = require("crypto");
const axios = require("axios");
const fs = require("fs");
const requestToken = require("./utils").requestToken;
router.get("/", (req, res, next) => {
res.send("OK");
router.all("/", (req, res, next) => {
fs.promises
.access("./.env")
.then(() => {
res.render("message", {
message: "服务已在运行。",
});
})
.catch(() => {
res.render("configure");
});
});
router.get("/verify", (req, res, next) => {
router.post("/configure", (req, res, next) => {
fs.promises
.access("./.env")
.then(() => {
res.render("message", {
message: ".env 文件已经存在,请手动删除该文件后重试!",
});
})
.catch(() => {
let content =
`APP_ID=${req.body.APP_ID}\n` +
`APP_SECRET=${req.body.APP_SECRET}\n` +
`TOKEN=${req.body.TOKEN}\n` +
`TEMPLATE_ID=${req.body.TEMPLATE_ID}\n` +
`OPEN_ID=${req.body.OPEN_ID}`;
fs.promises
.writeFile("./.env", content, "utf8")
.then(() => {
res.render("message", {
message:
".env 文件写入成功,程序即将自动关闭以应用写入的新的环境变量,需要进程守护程序自动重启应用或者手动重启。",
});
process.exit();
})
.catch((e) => {
res.render("message", {
message: "在尝试写入 .env 文件时发生错误:" + e,
});
});
});
});
router.all("/verify", (req, res, next) => {
// 验证消息来自微信服务器:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html
const { signature, timestamp, nonce, echostr } = req.query;
const token = process.env.TOKEN;
@@ -21,10 +64,9 @@ router.get("/verify", (req, res, next) => {
}
});
router.get("/push", (req, res, next) => {
router.all("/push", (req, res, next) => {
// Reference: https://mp.weixin.qq.com/debug/cgi-bin/readtmpl?t=tmplmsg/faq_tmpl
let content = req.query.content || req.body.content;
console.log(`Get content: ${content}`);
let access_token = req.app.access_token;
let request_data = {
touser: process.env.OPEN_ID,
@@ -37,6 +79,9 @@ router.get("/push", (req, res, next) => {
request_data
)
.then((response) => {
if (response.data && response.data.errcode === "40001") {
requestToken(req.app);
}
res.json(response.data);
})
.catch((error) => {