UNPKG

fkc

Version:

FKC application service framework.

44 lines 1.5 kB
'use strict'; const {isFile} = require('../fs'); const stream = require('../use/stream'); const {ctxs,error,body,json,fileType,fileName} = require('../util'); module.exports = async(req,res,ctx,use)=> { for (let i = 0;i < use.length;i++) { try { await use[i](ctx); ctx = await ctxs(req,ctx); if(ctx.json){ json(res,ctx.json); return; } if(ctx.res){ if(ctx.res.cookie) { res.setHeader("Set-Cookie",ctx.res.cookie); delete ctx.res.cookie; } if(ctx.res.file&&isFile(ctx.res.file)){ stream(req,res,fileName(ctx.res.file)); return; } if(ctx.res.static&&isFile(ctx.res.static)){ stream(req,res,fileType(ctx.res.static)); return; } if(ctx.res.body){ body(res,{ data:ctx.res.body, type:ctx.res.type||'txt', status:ctx.res.status||200, charset:ctx.res.charset||'utf-8' }); return; } } if(req.fkc.stop===0) return 1; } catch (e) { error(res,e.name+':'+e.message); return; } }; return true; }