- 新增 server/:Node + Express + SQLite + node-cron 实现登录、纪念日 CRUD 和定时订阅消息推送 - 新增 .gitea/workflows/deploy.yml:推送即触发群晖 Docker 部署,监听 15002 - utils/api.js:自动按 envVersion 切换本地/线上 BASE_URL - app.js 与 add-anniversary.js 移除 wx.cloud 调用,改走自建后端 - cloudfunctions/ 暂保留以便回滚 - 一并提交此前未入库的首页 / 设置页 / 日历 / 万年历等改造 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
/**
|
||||
* 后端接口请求封装
|
||||
*
|
||||
* 开发版(开发者工具)走本地 docker,体验版/正式版走线上 HTTPS。
|
||||
*/
|
||||
|
||||
const DEV_BASE_URL = 'http://localhost:3000'
|
||||
const PROD_BASE_URL = 'https://wxserver.ymxixi.space'
|
||||
|
||||
function resolveBaseUrl() {
|
||||
try {
|
||||
const env = wx.getAccountInfoSync().miniProgram.envVersion
|
||||
return env === 'develop' ? DEV_BASE_URL : PROD_BASE_URL
|
||||
} catch (e) {
|
||||
return DEV_BASE_URL
|
||||
}
|
||||
}
|
||||
|
||||
const BASE_URL = resolveBaseUrl()
|
||||
|
||||
function request({ url, method = 'POST', data = {}, withOpenid = true }) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const header = { 'Content-Type': 'application/json' }
|
||||
if (withOpenid) {
|
||||
const openid = wx.getStorageSync('openid')
|
||||
if (openid) header['x-openid'] = openid
|
||||
}
|
||||
wx.request({
|
||||
url: BASE_URL + url,
|
||||
method,
|
||||
header,
|
||||
data,
|
||||
timeout: 10000,
|
||||
success: (res) => {
|
||||
if (res.statusCode >= 200 && res.statusCode < 300) resolve(res.data)
|
||||
else reject(new Error(`HTTP ${res.statusCode}`))
|
||||
},
|
||||
fail: (err) => reject(err)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// 登录:用 wx.login 拿 code 换 openid
|
||||
function login() {
|
||||
return new Promise((resolve, reject) => {
|
||||
wx.login({
|
||||
success: async (loginRes) => {
|
||||
try {
|
||||
const res = await request({
|
||||
url: '/api/login',
|
||||
data: { code: loginRes.code },
|
||||
withOpenid: false
|
||||
})
|
||||
if (!res.success) return reject(new Error(res.error || '登录失败'))
|
||||
resolve(res)
|
||||
} catch (err) {
|
||||
reject(err)
|
||||
}
|
||||
},
|
||||
fail: reject
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// 纪念日操作(兼容原云函数 action 协议)
|
||||
function anniversary(action, data) {
|
||||
return request({ url: '/api/anniversary', data: { action, data } })
|
||||
}
|
||||
|
||||
module.exports = { request, login, anniversary, BASE_URL }
|
||||
Reference in New Issue
Block a user