javascript - 我可以从应用程序将 cors 扩展到路由器吗?
问题描述
我有两个问题:
- 我可以在我的所有路由器文件中使用
cors()
一次server.js
而不是调用它吗?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())
收到一个CORS/api/v1/users
解决方案
- 是的,您只需要对整个应用程序使用一次 cors()。
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;
推荐阅读
- python - django.core.exceptions.ImproperlyConfigured 和 TypeError: 'module' object is not iterable
- python-3.x - 基于烧瓶形式的用户输入将 Pandas 分组数据发送到烧瓶模板
- docusignapi - Docusign 签名者坐标无法正常工作
- algorithm - Racket 定义的渐进类型 lambda 演算的“重复”语法?
- php - Laravel Eloquent - 如何使用 Eloquent 让每个父母只有 2 个孩子?
- if-statement - 动态 If else 语句,条件值来自数据库
- javascript - 前端框架项目的节点和 npm 版本锁定?
- angular - 在 Angular 应用程序中存储身份验证令牌的替代方法
- r - 使用 Hydromad 部署闪亮的应用程序时出错
- c# - 如何在 C# 中解析和执行自定义脚本?