npm 包 node-cors 使用教程

最近,在开发前端应用的过程中,我们经常需要向后端请求数据。然而,由于安全性的考虑,常常需要跨域请求数据。因此,出现了一种名为 CORS(Cross-Origin Resource Sharing)的技术,能够解决跨域请求数据的问题。而 node-cors 就是用来处理 CORS 的 npm 包之一。

node-cors 简介

node-cors 是一款处理 CORS 请求的 Node.js 中间件包。它能让后端服务支持跨域请求,支持定制化设置请求头参数和响应头参数,解决跨域请求时可能产生的安全问题。

安装 和 引入

通过 npm 包管理器安装 node-cors:

--- ------- ---- ------

在项目中引入 node-cors:

----- ---- - ----------------

使用说明

在 Express 应用中使用 node-cors 中间件,只需要在创建应用对象实例的时候,通过调用 cors() 便可启用跨域的处理。如:

----- ------- - -------------------
----- ---- - ----------------
----- --- - ----------

----------------

通过在中间件函数调用时,使用 {options} 标志,可以自定义所需的选项。如:

--------------
    ------- ------------------------
----

main options

  • origin {String | Function}: 可选,默认为 * 代表全部来源,原请求的地址。如果指定了单个域名或子域名,只有从此处发起的请求才被允许。也可以传入一个返回字符串或者一个返回 boolean 值的函数,实现定制化的域名匹配规则。

  • methods {String[]}: 可选,默认为 GET、HEAD、PUT、PATCH、POST 和 DELETE。用于指定对于特定的请求方法,可以发送的请求头白名单。

response options

  • exposedHeaders {String[]}: 可选。用于定义客户端可以访问的响应头的名称。

  • credentials {Boolean}: 可选,默认为 false,CORS 预检请求中是否允许使用 cookie 、认证 token 等凭证。

  • maxAge {Number}: 可选,默认为 86400。在发送预检请求之前,浏览器可以将响应缓存下来的秒数。

middleware options

  • preflightContinue {Boolean}: 可选,默认为 false。控制是否继续处理当前请求,还是只是终止处理链式回调。当设为 false 时,意味着遇到 CORS 失败之后,不会再继续处理后续的路由或中间件,反之,请求会继续往下执行下去。

  • optionsSuccessStatus {Number}: 可选,默认为 204 (请求已成功执行,但是客户端不应该更改里面的视图)。接收 options 请求的返回码,可以用来自定义成功状态码如 200 或 202。

configuration function

  • *cors({options})*:可选配置,包含可选项对象的回调函数。这是用于创建 cors 实例的工厂函数,可以用来生成多个节点使用不同选项的 Node.js Express 服务。

示例代码

假设我们有一个 Node.js Express 后端 web 应用,需要在前端 JavaScript 项目中跨域请求,同时需要启用如下设置:

  • 指定相应的来源增加安全;
  • 响应预检请求可以使用 cookie 等敏感数据;
  • 跨域响应可以使用自定义请求头;
  • 性能优化,对请求进行缓存。
----- ------- - -------------------
----- ------------ - -------------------------
----- ---- - ----------------
----- --- - ----------

-- -----
------------------------
--------------
    -- -------
    ------- ----
    -- --------- ---------------- -----
    ------- -------- -------- --------- -
        -- ------- --- --------------------------- -
            -------------- ------
            -------
        -
        -- --------
        ------------ ---------- ------- -- --------
    --
    -- ----------- ------------------ -----
    ------------ -----
    -- ----------
    --------------- -----------------
    -- ----
    ------- ------
----

-- -------------
---
---------------- -- -- -
    ------------------- -- --------- -- ---- -------
---

本文对 node-cors 中间件的基本使用方法做了详细说明,介绍了 npm 包 node-cors 的作用和安装方法,以及不同功能选项的用法。掌握了 node-cors 的使用,大大提升了前端跨域请求的能力。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60055fe381e8991b448dd801


猜你喜欢

  • npm 包 steal-server 使用教程

    简介 steal-server 是一个基于 Node.js 的 npm 包,用于在前端开发中提供快速而简便的模块依赖管理。 使用 steal-server,可以让前端开发者更加方便地管理应用程序的依赖...

    3 年前
  • npm 包 computes-vm 使用教程

    前言 在前端开发中,有许多需求需要计算机进行处理,例如数学公式的计算、表达式求值、正则表达式匹配等等。此时,如果我们每个开发者都通过手写代码来实现这些功能,会比较繁琐和低效。

    3 年前
  • npm 包 zview-mobile-editor 使用教程

    在前端开发中,有很多工具可以帮助我们提高效率。其中,npm 包 zview-mobile-editor 是一款优秀的富文本编辑器。它具有易用、轻量、高效等特点,适合用于移动端富文本编辑的场景。

    3 年前
  • NPM 包 epl-2.0 使用教程

    如果你是一个前端开发者,你一定需要经常使用各种不同的工具来帮助你更快更好的完成你的工作。其中 npm (node package manager) 是一个非常有用的工具,它为我们提供了一种方便的方式去...

    3 年前
  • npm 包 caselightformgenerator 使用教程

    简介 caselightformgenerator 是一个开源的 npm 包,用于快速生成表单并对数据进行验证。它可以帮助前端开发者轻松实现表单的校验以及 UI。它支持多种表单输入类型,如文本输入框、...

    3 年前
  • npm 包 gulp-connect-ex 使用教程

    在前端开发中,为了提高开发效率,我们经常需要使用自动化构建工具来进行项目构建和管理。其中,gulp 是一个十分流行的构建工具,而 gulp-connect-ex 则是一个用于创建本地服务器的插件,支持...

    3 年前
  • npm 包 json-decode 使用教程

    在前端开发过程中,我们经常需要通过网络获取 JSON 格式的数据,而解析 JSON 数据是前端开发所必须掌握的技能之一。为了更加高效地完成 JSON 数据的解析,我们可以借助 npm 包 json-d...

    3 年前
  • npm包:jsonmvc-util-update 使用教程

    在现代前端应用程序中,管理数据是一个重要的方面。一个庞大的应用程序可能会涉及到很多数据的管理,对于数据的增删改查以及状态的改变都需要一个可靠的处理机制。jsonmvc-util-update 就是一个...

    3 年前
  • npm 包 kadiy_fetch 使用教程

    前言 HTTP 请求是前端开发中的重要环节,我们经常需要发送请求获取数据,前端开发中的请求包括 GET、POST、PUT、DELETE 等等。而在 JavaScript 中,可以通过 XMLHttpR...

    3 年前
  • npm 包 metalsmith-assets-ex 使用教程

    Metalsmith 是一个基于 Node.js 的静态网站生成器,而 metalsmith-assets-ex 是 metalsmith 的一个插件,用于处理静态资源文件。

    3 年前
  • npm 包 gulp-sass-import-once 使用教程

    在前端开发中,经常会用到 Sass 这种 CSS 预处理器来提高开发效率。而使用 Sass 进行开发的时候,如果需要使用一些自定义的 mixin、函数、变量等,就需要使用 @import 指令来导入相...

    3 年前
  • npm 包 klarna-no-kafka 使用教程

    简介 klarna-no-kafka 是一款基于 Node.js 的 Kafka 客户端工具,它提供了一系列易于使用的 API,可用于连接到 Kafka 集群、读写数据以及管理 Kafka 的消费者和...

    3 年前
  • npm 包 yaminafetch 使用教程

    前言 在前端开发中,经常需要进行网络请求,因此 AJAX 技术也是我们必须要学会的一项技能之一。而 XMLHttpRequest 对象在使用上较为复杂,代码量也比较大,因此引入了许多优化版的 AJAX...

    3 年前
  • npm 包 uhutu-plus 使用教程

    介绍 npm包 uhutu-plus 是一个前端工具类库,包含了一些常用的 JavaScript 函数和组件。其中包括表单验证、日期选择框等等。这些函数和组件可以帮助开发者快速地实现一些复杂的前端功能...

    3 年前
  • npm 包 motzee-fetch 使用教程

    介绍 motzee-fetch 是一款简单易用的前端网络请求库,支持 Promise 和 async/await 语法,同时支持浏览器和 Node.js 环境,可以方便地进行 HTTP 请求。

    3 年前
  • npm 包 sebm-fetch 使用教程

    在前端开发中,我们常常需要进行 HTTP 请求,获取接口数据,并在页面中展示出来。而在实际开发中,我们通常使用一些第三方的库来帮助我们完成这些操作,其中一个比较流行的库就是 fetch。

    3 年前
  • npm 包 gulp-art-template4 使用教程

    前端开发中,我们经常需要使用模板引擎来渲染页面。其中,ArtTemplate 是一种非常流行的模板引擎。而 gulp-art-template4 是一个集成了 ArtTemplate 的 Gulp 插...

    3 年前
  • npm 包 rex-month-picker 使用教程

    介绍 rex-month-picker 是一个封装了月份选择器的 npm 包,可以帮助前端开发者快速集成一个月份选择组件。使用简单,功能强大,支持自定义主题,且不依赖其他第三方库。

    3 年前
  • npm 包 speedt-mysql 使用教程

    前言 speedt-mysql 是一个通过 Node.js 操作 MySQL 数据库的 npm 包,它具有速度快、易于使用、性能出色等优点。如果你的项目中需要操作 MySQL 数据库,那么使用 spe...

    3 年前
  • npm 包 vue-scroll-refresh-loadmore 使用教程

    Vue-scroll-refresh-loadmore 是一个基于 Vue.js 的下拉刷新加载更多组件,为前端开发者提供了方便快捷的数据展示方式。本文将介绍该 npm 包的使用教程,包括安装、配置、...

    3 年前

相关推荐

    暂无文章