UNPKG

mm_os

Version:

这是超级美眉服务端框架,用于快速构建应用程序。

66 lines (60 loc) 1.52 kB
const xmlParser = require("mm_xml"); const session = require('mm_session'); const compress = require('koa-compress'); const { koaBody } = require('koa-body'); const send = require('koa-send'); /** * web基础 * @param {Object} server 服务 * @param {Object} config 配置参数 */ module.exports = function(server, config) { /** * 发送文件 */ server.use(async (ctx, next) => { ctx.send = async function(src) { await send(ctx, src); } await next(); }); // 设置session 保存时长2小时 server.use(session({ maxAge: $.login_period || config.maxAge || 7200 })); // 使用压缩 if (config.compress) { server.use( compress({ filter: function(content_type) { // 只有在请求的content-type中有gzip类型,我们才会考虑压缩,因为zlib是压缩成gzip类型的 return /text/i.test(content_type); }, // 阀值,当数据超过1kb的时候,可以压缩 threshold: 1024, // zlib是node的压缩模块 flush: require('zlib').Z_SYNC_FLUSH }) ); } // 解析 text/xml server.use(xmlParser()); var func = koaBody({ jsonLimit: config.jsonLimit || '20mb', multipart: true, formidable: { // 设置上传文件大小最大限制,默认20M maxFileSize: 2000 * 1024 * 1024 } }); // 解析 application/json、application/x-www-form-urlencoded、text/plain // 接收主体 server.use(async (ctx, next) => { if (!ctx.request.body) { await func(ctx, next); } else { await next(); } }); return server; };