Add 卓米会 mini program and admin server.

Initial commit of the WeChat mini program, Express backend, and admin console.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Michelle Zan
2026-09-29 19:01:36 +08:00
co-authored by Cursor
commit cd05113755
67 changed files with 4845 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
const path = require('path')
const express = require('express')
const { uploadDir } = require('./lib/upload')
const { fail } = require('./lib/http')
const app = express()
const publicDir = path.join(__dirname, 'public')
app.disable('x-powered-by')
app.use(express.json({ limit: '1mb' }))
app.use('/static/uploads', express.static(uploadDir, { maxAge: '7d' }))
app.use('/static', express.static(publicDir))
app.use('/api/admin', require('./routes/admin'))
app.use('/api', require('./routes/public'))
app.get('/admin', (req, res) => res.sendFile(path.join(publicDir, 'admin.html')))
app.get('/', (req, res) => res.redirect('/admin'))
app.use('/api', (req, res) => fail(res, 404, '接口不存在'))
app.use((error, req, res, next) => {
if (res.headersSent) return next(error)
if (error.type === 'entity.parse.failed') return fail(res, 400, '请求格式错误')
if (error.type === 'entity.too.large') return fail(res, 413, '请求内容过大')
const status = error.status && error.status < 500 ? error.status : 500
if (status === 500) console.error(error)
fail(res, status, status === 500 ? '服务器开小差了' : error.message)
})
module.exports = app