Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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 膝关节炎中间件订购 我有一个问题,膝关节炎和中间件订单。< /P>_Javascript_Node.js_Koa_Koa Router - Fatal编程技术网

Javascript 膝关节炎中间件订购 我有一个问题,膝关节炎和中间件订单。< /P>

Javascript 膝关节炎中间件订购 我有一个问题,膝关节炎和中间件订单。< /P>,javascript,node.js,koa,koa-router,Javascript,Node.js,Koa,Koa Router,Im'使用多个中间件、Koa路由器、强大、Koa静态文件夹和一个用于设置头 现在,按照当前顺序,当我通过API将文件从前端上传到后端时,它将抛出CORS错误,这意味着头不在那里(因此该中间件没有正确加载) 当我移动它们时,其他东西会停止工作 这是我的密码: this.app.use(serve({rootDir: './uploads', rootPath: '/public/uploads/'})); this.app.use(router.routes()); this.app.use(fo

Im'使用多个中间件、Koa路由器、强大、Koa静态文件夹和一个用于设置头

现在,按照当前顺序,当我通过API将文件从前端上传到后端时,它将抛出CORS错误,这意味着头不在那里(因此该中间件没有正确加载)

当我移动它们时,其他东西会停止工作

这是我的密码:

this.app.use(serve({rootDir: './uploads', rootPath: '/public/uploads/'}));
this.app.use(router.routes());
this.app.use(formidable());
this.app.use((ctx, next) => {

    // Website you wish to allow to connect
    ctx.set('Access-Control-Allow-Origin', '*');

    // Request methods you wish to allow
    ctx.set('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');

    // Request headers you wish to allow
    ctx.set('Access-Control-Allow-Headers', 'X-Requested-With,content-type');

    // Set to true if you need the website to include cookies in the requests sent
    // to the API (e.g. in case you use sessions)
    ctx.set('Access-Control-Allow-Credentials', "true");

    // Pass to next layer of middleware
});

有人能给我解释一下如何确定中间件的正确顺序吗

您是否真的在设置标题的最后一位调用了
next()
?但是是的,顺序很重要。如果按照与当前顺序相反的顺序进行操作,会发生什么?请按照http响应的顺序对函数进行排序:首先是页眉,然后是内容,然后是页脚。此外,我建议对Koa中与页眉相关的任何内容使用/Express@JonasW. 404之类的任何通配符都应该放在最后。当头放在第一位时,它根本找不到路由。甚至当我添加next()时;到页眉的末尾