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 请求正在做什么。