You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
md5file/app.js

68 lines
1.9 KiB

2 years ago
const Koa = require('koa')
const app = new Koa()
const views = require('koa-views')
const json = require('koa-json')
const onerror = require('koa-onerror')
const logger = require('koa-logger')
const {koaBody} = require('koa-body')// 支持form-data,支持文件,不支持x-www-form-urlencoded,不可同时使用,
const index = require('./routes/index')
const users = require('./routes/users')
const fileStorage = require('./routes/fileStorage')
const menu = require('./routes/menu')
const container = require('./routes/container')
const initSQL = require('./Database/index');
initSQL()
2 years ago
// error handler
onerror(app)
// middlewares
app.use(json())
app.use(logger())
app.use(require('koa-static')(__dirname + '/public'))
app.use(views(__dirname + '/views', {
extension: 'pug'
}))
// logger
app.use(async (ctx, next) => {
const start = new Date()
await next()
const ms = new Date() - start
console.log(`${ctx.method} ${ctx.url} - ${ms}ms`)
})
app.use(koaBody({
multipart: true, // 支持文件上传
encoding: 'gzip',
strict: false,// 参数:如果启用,则不解析GET,HEAD,DELETE请求,默认为true
formidable: {
// uploadDir:path.join(__dirname,'public/upload/'), // 设置文件上传目录
keepExtensions: true, // 保持文件的后缀
maxFieldsSize: 10 * 1024 * 1024, // 文件上传大小
// onFileBegin:(name,file) => { // 文件上传前的设置
// // console.log(`name: ${name}`);
// // console.log(file);
// },
}
}));
// routes
app.use(index.routes(), index.allowedMethods())
app.use(users.routes(), users.allowedMethods())
app.use(fileStorage.routes(), fileStorage.allowedMethods())
app.use(menu.routes(), menu.allowedMethods())
app.use(container.routes(), container.allowedMethods())
global.dirname = __dirname
2 years ago
// error-handling
app.on('error', (err, ctx) => {
console.error('server error', err, ctx)
});
2 years ago
module.exports = app