79 lines
2.3 KiB
JavaScript
79 lines
2.3 KiB
JavaScript
const Koa = require('koa')
|
|
const Router = require('koa-router')
|
|
const cors = require('@koa/cors')
|
|
const bodyParser = require('koa-bodyparser')
|
|
const path = require('path')
|
|
require('dotenv').config()
|
|
|
|
const app = new Koa()
|
|
const router = new Router()
|
|
|
|
app.use(cors({
|
|
origin: '*',
|
|
allowMethods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
|
|
allowHeaders: ['Content-Type', 'Authorization']
|
|
}))
|
|
|
|
app.use(bodyParser({
|
|
jsonLimit: '10mb',
|
|
formLimit: '10mb'
|
|
}))
|
|
|
|
app.use(require('koa-static')(path.join(__dirname, 'public')))
|
|
|
|
const errorHandler = async (ctx, next) => {
|
|
try {
|
|
await next()
|
|
if (ctx.status === 404) {
|
|
ctx.body = {
|
|
code: 404,
|
|
message: '接口不存在'
|
|
}
|
|
}
|
|
} catch (error) {
|
|
console.error('Server error:', error)
|
|
ctx.status = error.status || 500
|
|
ctx.body = {
|
|
code: ctx.status,
|
|
message: process.env.NODE_ENV === 'production' ? '服务器内部错误' : error.message
|
|
}
|
|
}
|
|
}
|
|
|
|
app.use(errorHandler)
|
|
|
|
const orderRoutes = require('./routes/orders')
|
|
const categoryRoutes = require('./routes/categories')
|
|
const goodsRoutes = require('./routes/goods')
|
|
const userRoutes = require('./routes/users')
|
|
const uploadRoutes = require('./routes/upload')
|
|
const stockRoutes = require('./routes/stock')
|
|
const aiRoutes = require('./routes/ai')
|
|
const supplierRoutes = require('./routes/suppliers')
|
|
const purchaseRoutes = require('./routes/purchases')
|
|
const pointsGoodsRoutes = require('./routes/points-goods')
|
|
const statsRoutes = require('./routes/stats')
|
|
const priceListRoutes = require('./routes/price-list')
|
|
const pointsLogsRoutes = require('./routes/points-logs')
|
|
|
|
router.use('/api/orders', orderRoutes)
|
|
router.use('/api/categories', categoryRoutes)
|
|
router.use('/api/goods', goodsRoutes)
|
|
router.use('/api/users', userRoutes)
|
|
router.use('/api/upload', uploadRoutes)
|
|
router.use('/api/stock', stockRoutes)
|
|
router.use('/api/ai', aiRoutes)
|
|
router.use('/api/suppliers', supplierRoutes)
|
|
router.use('/api/purchases', purchaseRoutes)
|
|
router.use('/api/points-goods', pointsGoodsRoutes)
|
|
router.use('/api/stats', statsRoutes)
|
|
router.use('/api/price-list', priceListRoutes)
|
|
router.use('/api/points/logs', pointsLogsRoutes)
|
|
|
|
app.use(router.routes())
|
|
app.use(router.allowedMethods())
|
|
|
|
const PORT = process.env.PORT || 3006
|
|
app.listen(PORT, () => {
|
|
console.log(`Server running on port ${PORT}`)
|
|
}) |