最近掘金暂停服务 我们都看到了掘金的“站点维护通知“
我们也可以用腾讯云 Serverless 快速生成基于 Express 的“站点维护通知“
Live Demo - 掘银站点维护通知 (手动狗头)
$ npm install -g serverless 复制代码
$ touch serverless.yml 复制代码
# serverless.yml express: component: "@serverless/tencent-express" inputs: region: ap-guangzhou runtime: Nodejs8.9 复制代码
$ npm init $ npm i --save express 复制代码
ps: 这里可以直接参考文档 腾讯云 Express 组件
app.js
const fs = require("fs"); const path = require("path"); const render = require("./render"); const express = require("express"); const app = express(); app.get("/", function (req, res) { let html = fs.readFileSync(path.resolve(__dirname, "./template.html"), { encoding: "utf-8", }); html = render(html, { app: "你的应用名称", // 应用名称 start: "6 月 5 日", end: "7 月 5 日", }); res.send(html); }); module.exports = app; 复制代码
template.html
<!DOCTYPE html> <html lang="zh-Hans"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>暂停服务通知</title> <style> body { font-family: PingFang SC, -apple-system, Arial, Microsoft YaHei, Microsoft JhengHei, Helvetica Neue, sans-serif; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; line-height: 1; height: 100vh; background-color: #3498db; display: flex; align-items: center; justify-content: center; margin: 0; padding: 0; } .notice { color: #333; border-radius: 3px; padding: 35px 30px; background-color: #fff; box-shadow: -4px 4px 5px rgba(0, 0, 0, 0.3); max-width: 500px; text-align: center; } p { line-height: 1.4; text-align: left; } p:last-child { margin-top: -8px; } a { text-decoration: none; } .bold { font-weight: 500; } .text-right { text-align: right; margin-right: 20px; } @media (max-width: 500px) { h2 { font-size: 20px; } p { font-size: 14px; } } </style> </head> <body> <div class="notice" align="center"> <h2>${app}公告:${start} 到 ${end} 站点维护</h2> <p>致亲爱的${app}用户:</p> <p> <span class="bold">${start} ~ ${end} </span >期间,${app}将对服务器和数据库进行升级维护,在此期间会暂停网站及应用的访问,访问恢复时间以实际为准,请各位谅解。 </p> <p class="text-right">${app}</p> <p class="text-right">${start}</p> </div> </body> </html> 复制代码
ps: 这里参考的掘金服务维护页面代码
render.js
module.exports = function (tpl, variables) { for (let key in variables) { const reg = new RegExp("\\$\\{" + key + "\\}", "g"); tpl = tpl.replace(reg, variables[key]); } return tpl; }; 复制代码
ps: render.js 来自腾讯云示例代码
$ sls --debug 复制代码
ps: 部署完成后会得到一个自己的 URL
ps: 例如我得到的 URL 是 service-lxeq5p0s-1258796045.gz.apigw.tencentcs.com/release/
Repository: serverless-express-example
tencent-express 腾讯云 serverless