Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何创建Koa2中间件,它将修改响应体并在链中最后运行?_Javascript_Node.js_Koa2 - Fatal编程技术网

Javascript 如何创建Koa2中间件,它将修改响应体并在链中最后运行?

Javascript 如何创建Koa2中间件,它将修改响应体并在链中最后运行?,javascript,node.js,koa2,Javascript,Node.js,Koa2,我有一个Koa2应用程序,它在不同的路径上呈现模板。我想介绍一个中间件,它将以某种方式修改呈现的模板,我需要它成为其他中间件链中的最后一个。有没有办法强制某些中间件在使用Koa2触发响应之前最后应用,而不修改已经定义的路由 我尝试了以下代码: //修改中间件 使用(异步函数(ctx,下一步){ 等待下一个(); ctx.body=ctx.body.toUpperCase(); }) //模板渲染 使用(异步函数(ctx,下一步){ const users=[{},{name:'Sue'},{na

我有一个Koa2应用程序,它在不同的路径上呈现模板。我想介绍一个中间件,它将以某种方式修改呈现的模板,我需要它成为其他中间件链中的最后一个。有没有办法强制某些中间件在使用Koa2触发响应之前最后应用,而不修改已经定义的路由

我尝试了以下代码:

//修改中间件
使用(异步函数(ctx,下一步){
等待下一个();
ctx.body=ctx.body.toUpperCase();
})
//模板渲染
使用(异步函数(ctx,下一步){
const users=[{},{name:'Sue'},{name:'Tom'}];
等待ctx.render('content'{
使用者
});
});
app.listen(7001);
它按预期工作,但如果在
修改之前引入任何其他中间件,它将不是链中的最后一个


有可能实现所描述的行为吗?

不久前找到了这个问题的解决方案。如果其他人需要执行问题中所述的操作,代码如下:

//修改中间件
const mw=异步函数(ctx,下一个){
等待下一个();
ctx.body=ctx.body.toUpperCase();
}
应用中间件反移位(mw);
基本上,
中间件
应用程序对象的成员可以从外部访问。使用标准阵列方法<代码> UNSHIFT < /代码>,可以强制在中间件阵列中首先添加需要的中间件,这将被Koa作为链中的最后一个来处理。