Express:我是只定义 app.use(cors()) 还是需要为每条路线定义 router.use(cors()) ?
Express: Do I just define app.use(cors()) or do I need to router.use(cors()) for every route?
简短的问题。我正在构建这个应用程序,它变得非常大和混乱,所以我想减少它。我在 server.js 中有 app.use(cors()) 并为我拥有的每条路线定义 router.use(cors()) 。我可以在每条路线上删除 router.use(cors()) 并且只有 app.use(cors()) 没有 cors 错误吗?
如果 app.use(cors()) 仅在 server.js 文件中,则不会出现任何错误。
一份:
app.use(cors());
在您的任何路由或路由器定义注册之前发生的情况将自动应用于您的所有路由定义,无论它们是 app.xxx()
还是 router.xxx()
。
中间件按您注册的顺序排列 运行,因此只要在您注册任何路由器之前 app.use(cors())
运行 秒,它就会自动应用于您的所有路由器.
当然,这假设您希望 COR 访问适用于您的所有路线,而不仅仅是其中的一些路线。
还值得一提的是,app.use(cors());
足以满足某些 COR 访问,但并非所有类型的 COR 访问都足够,因此它还取决于 COR 请求正在做什么。
简短的问题。我正在构建这个应用程序,它变得非常大和混乱,所以我想减少它。我在 server.js 中有 app.use(cors()) 并为我拥有的每条路线定义 router.use(cors()) 。我可以在每条路线上删除 router.use(cors()) 并且只有 app.use(cors()) 没有 cors 错误吗?
如果 app.use(cors()) 仅在 server.js 文件中,则不会出现任何错误。
一份:
app.use(cors());
在您的任何路由或路由器定义注册之前发生的情况将自动应用于您的所有路由定义,无论它们是 app.xxx()
还是 router.xxx()
。
中间件按您注册的顺序排列 运行,因此只要在您注册任何路由器之前 app.use(cors())
运行 秒,它就会自动应用于您的所有路由器.
当然,这假设您希望 COR 访问适用于您的所有路线,而不仅仅是其中的一些路线。
还值得一提的是,app.use(cors());
足以满足某些 COR 访问,但并非所有类型的 COR 访问都足够,因此它还取决于 COR 请求正在做什么。