SFT/mock-server/index.js

57 lines
2.1 KiB
JavaScript

// mock-server 入口:装配全部业务路由,启动一个独立 Express 进程模拟真实后端。
// 启动方式:npm run mock(默认端口 8888,可通过环境变量 MOCK_PORT 覆盖)。
import express from 'express'
import cors from 'cors'
import cookieParser from 'cookie-parser'
import authRouter from './routes/auth.js'
import organizationRouter from './routes/organization.js'
import userRouter from './routes/user.js'
import roleRouter from './routes/role.js'
import permissionRouter from './routes/permission.js'
import baseConfigRouter from './routes/baseConfig.js'
import customerRouter from './routes/customer.js'
import walletRouter from './routes/wallet.js'
import creditRouter from './routes/credit.js'
import merchantRouter from './routes/merchant.js'
import invoiceRouter from './routes/invoice.js'
import paymentRouter from './routes/payment.js'
import orderRouter from './routes/order.js'
const app = express()
// 允许携带 Cookie 跨域(前端 axios withCredentials: true 依赖此配置)
app.use(cors({ origin: true, credentials: true }))
app.use(cookieParser())
app.use(express.json({ limit: '10mb' }))
app.use('/api/auth', authRouter)
app.use('/api/organization', organizationRouter)
app.use('/api', userRouter)
app.use('/api', roleRouter)
app.use('/api/permission', permissionRouter)
app.use('/api', baseConfigRouter)
app.use('/api', customerRouter)
app.use('/api', walletRouter)
app.use('/api/credit-apply', creditRouter)
app.use('/api/merchant', merchantRouter)
app.use('/api', invoiceRouter)
app.use('/api', paymentRouter)
app.use('/api', orderRouter)
app.use((req, res) => {
res.status(404).json({ code: 404, message: `接口不存在: ${req.method} ${req.originalUrl}`, data: null })
})
// eslint-disable-next-line no-unused-vars
app.use((err, req, res, next) => {
console.error('[mock-server] 未捕获异常:', err)
res.status(500).json({ code: 500, message: err?.message || '服务器内部错误', data: null })
})
const PORT = process.env.MOCK_PORT || 8888
app.listen(PORT, () => {
console.log(`[mock-server] 已启动,监听端口 ${PORT}`)
console.log('[mock-server] 测试账号: admin / Admin@123')
})