测试了拦截路由,设置跨域两者效果一样:
index.js:
router.use(function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type');
const url=req.url
if (url.indexOf('test')!=-1){
return res.json('test')
}
next();
});
...
router.all('*',function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type');
const url=req.url
if (url.indexOf('test')!=-1){
return res.json('test')
}
next();
});
...
本地测试的,两者有什么区别,应该使用哪种?
跨域和路由拦截有共同点,就是针对所有的任何形式的请求,所以一般用router.all(),而router.use()主要是针对指定路径下中间件的处理,当然它也可以用来匹配任意的路径,但它用于表示针对所有的请求时,必须在其他路由前使用。