【问题标题】:Can I extend the cors to the routers from app?我可以从应用程序将 cors 扩展到路由器吗?
【发布时间】:2021-05-14 20:27:58
【问题描述】:

我有两个问题:

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

我的 server.js 现在可以像下面那样处理 CORS,但 app 也可以处理 users 路由器。

server.js 处理对/ 的请求

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 的请求

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

【问题讨论】:

  • 注册app.use(cors());就在创建快递申请后。
  • 这就是我在server.js 中所做的。你的意思是我不必在其他路由器文件中做router.use(cors())
  • 提供您将路由器注册到 express 应用程序的方式。
  • 我使用app.use('/api/v1/user', users),这也在我的问题中得到了更新。很抱歉错过了这一点。
  • 您在浏览器上遇到的错误是什么?

标签: javascript node.js express cors


【解决方案1】:
  1. 是的,您只需对整个应用程序使用一次 cors()。
  2. 如果您在单独的文件中隔离路线,则不需要在每个文件中添加 require express

文件夹结构:

+ index.js
+ routers
  + users.js
  + server.js
+ controllers
  + user_controller.js

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

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 文件应该是什么样子的:

const router = require('express').Router();
const userRoutes = require('./users');


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

module.exports = router;

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

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;

【讨论】:

    猜你喜欢
    • 2018-07-31
    • 1970-01-01
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 2010-11-07
    • 1970-01-01
    • 2015-06-27
    相关资源
    最近更新 更多