c 网站开发数据库,做网站策划容易遇到哪些问题,经典企业网站模板,标题关键词优化技巧中间件#xff1a;洋葱模型 这是官网上给出的示例#xff0c;从logger依次往下执行#xff0c;执行到最底层的response往回退#xff0c;结构很像同心圆的洋葱从外层向内层再由内层向外层。
next表示暂停当前层的代码进入下一层#xff0c; 当最后一层执行完毕开始回溯洋葱模型 这是官网上给出的示例从logger依次往下执行执行到最底层的response往回退结构很像同心圆的洋葱从外层向内层再由内层向外层。
next表示暂停当前层的代码进入下一层 当最后一层执行完毕开始回溯执行上一层没做完的内容。 路由中间件
// app.js
const xxxRouter require(./routes/xxx);
app.use(xxxRouter.routes(), xxxRouter.allowedMethods());// xxx.js
// 路径前缀是/xxx
const Router new Router({ prefix: /xxx });
xxxRouter.post(/abaaba, async (ctx, next) {let body ctx.request.body;try {t ...ctx.body {code: 200,msg: success,data: t,};} catch (e) {console.log(e);ctx.body {code: 500,msg: 请检查参数,data: e,};}
});
xxxRouter.routes() 是一个用于处理路由的中间件而 xxxRouter.allowedMethods() 是一个用于处理请求方法的中间件。在 Koa 中路由中间件负责根据不同的 URL 路径将请求分发到不同的处理函数而请求方法中间件负责根据请求的 HTTP 方法如 GET、POST 等确定是否允许该方法的请求。
所以app.use(xxxRouter.routes(), xxxRouter.allowedMethods()) 这行代码的作用是将 xxxRouter 中定义的路由处理函数与请求方法处理函数绑定到 Koa 应用程序中以便在收到请求时执行相应的操作。这样当请求到达时首先会通过路由中间件进行路径匹配然后再通过请求方法中间件检查请求的方法是否被允许。
请求部分的ctx是request和response的集合ctx.request.body表示收到的请求体ctx.body表示要发送的应答体 Body中间件
比起nodejs自带的bodyparserkoa-body还可以支持文件传输用ctx.request.files.xxx文件的变量名来进行接收文件
注意koa-body进行的文件上传是先下载到本地的如果需要的功能是导入之类的这个文件用完就没用了记得及时删除
if (fs.existsSync(filepath)) {fs.unlinkSync(filepath); console.log(File deleted!);} 可以同时支持多地址 示例中告诉我们可以同时支持https和http