首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我能把cors从app扩展到路由器吗?

我能把cors从app扩展到路由器吗?
EN

Stack Overflow用户
提问于 2021-02-11 04:54:20
回答 1查看 388关注 0票数 2

我有两个问题:

  • 我可以在server.js中使用cors()一次而不是在所有路由器文件中使用use吗?
  • 可以在server.js中表示一次而不是在所有路由器文件中调用吗?

f 210

我的server.js现在没有像下面这样处理CORS的问题,但是app也处理users路由器。

server.js处理对/的请求

代码语言:javascript
复制
const cors = require('cors');
const express = require('express');
const users = require('./routers/users');
const app = express();
app.use(cors());
app.use('/api/v1/user', users); // Register the user router

routers/users.js处理对/users的请求

代码语言:javascript
复制
const cors = require('cors'); // Required again
const express = require('express'); // Required again
const router = express.Router();
router.use(cors());

如果我不使用router.use(cors()),当我访问/api/v1/users时,我将在浏览器上收到一个CORS

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-15 13:29:34

是的,对于整个application.

  • No,您只需要使用cors()一次,如果要在单独的文件中隔离路由,则需要在每个文件中使用application.

  • No express

文件夹结构:

代码语言:javascript
复制
+ index.js
+ routers
  + users.js
  + server.js
+ controllers
  + user_controller.js

您的index.js文件应该是什么样的:

代码语言:javascript
复制
const cors = require('cors');
const express = require('express');
const serverRoutes = require('./routers/server');

const app = express();

// Allow cross origin access.
app.use(cors());

app.use('/', serverRoutes);

您的server.js文件应该是什么样的:

代码语言:javascript
复制
const router = require('express').Router();
const userRoutes = require('./users');


router.use('/api/v1/user', userRoutes); // Register the user router

module.exports = router;

您的user.js文件应该是什么样的:

代码语言:javascript
复制
const router = require('express').Router();
const userController = require('../controllers/user_controller');

router.get('/', (req, res) => {
    userController.list(req, res); // or whatever your code is.
});

module.exports = router;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66148955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档