使用node . js如何处理歌珥

  介绍

小编给大家分享一下使用节点。js如何处理歌珥,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!

介绍

在本文中,我们将研究怎样用表达配置歌珥以及根据需要定制歌珥中间件。

什么是歌珥

歌珥是“跨域资源共享”的简写。它是一种允许或限制向Web服务器上请求资源的机制,具体取决于进行HTTP请求的位置。

这种策略用于保护特定Web服务器免受其他网站或域的访问。只有允许的域才能访问服务器中的文件,例如样式表,图像或脚本等。

假设你当前使用的是http://example.com/page1 <代码> 的图片,那么除非http://image.com <代码> 允许与http://example.com <代码> 进行跨域共享,否则将无法获取该图像。

每个HTTP请求头中都有一个名为<代码> 起源的头。它定义了域请求的来源。可以用这个头的信息来限制引用你服务器上的资源。

默认来自任何其他来源的请求都会受到浏览器的限制。

例如当开发时如果用的是反应或Vue这类的前端库,则前端应用将运行在<代码> http://localhost: 3000 上,同时,你的快递服务器可能正在其他端口上运行,例如<代码> http://localhost: 2020>

如果你在浏览器控制台中看到下图这类的错误。问题可能出在歌珥限制上:

使用节点。js如何处理歌珥

如果我们需要提供公共API并希望控制对某些资源的访问和使用方式时,歌珥能够发挥很大的作用。

另外,如果想在其他网页上使用自己的API或文件,也可以简单地将歌珥配置为允许自己引用,同时把其他人拒之门外。

用表达配置歌珥

首先创建一个新的项目,并创建目录结构,然后使用默认设置运行<代码> npm init :

mkdir myapp美元   $ cd myapp   美元npm init - y

接下来安装所需的模块。我们将使用<代码>表达和<代码>歌珥> npm美元我——拯救表达   美元npm我——拯救歌珥

然后,开始创建一个简单的有两个路由的Web程序,用来演示歌珥的工作原理。

首先创建一个名为索引。js的文件,用来充当Web服务器,并实现几个请求处理函数:

const表达=要求(& # 39;表达# 39;);   const歌珥=要求(& # 39;歌珥# 39;);      const应用=表达();      app.get(& # 39;/& # 39;(点播,res)=比;{   res.json ({   信息:& # 39;你好& # 39;   });   });      app.get(& # 39;/:名字# 39;,(点播,res)=比;{   让name=req.params.name;      res.json ({   消息:“你好,${名称}”   });   });      app.listen(2020年,()=比;{   console.log(& # 39;服务器正在监听>节点美元指数。js

访问<代码> http://localhost: 2020/服务器应该返回JSON消息:

{   “message":“你好World"   }

访问<代码> http://localhost: 2020/东西> {   “message":“你好something"   }

启用所有歌珥请求

如果想为所有的请求启用歌珥,可以在配置路由之前简单地使用<代码>歌珥> const表达=要求(& # 39;表达# 39;);   const歌珥=要求(& # 39;歌珥# 39;);      const应用=表达();      app.use(歌珥())      ……

如果需要,这会允许在网络上的任何位置访问所有路由所。以在本例中,每个域都可以访问两条路由。

例如,如果我们的服务器在http://www.example.com <代码> 上运行并提供诸如图片之类的内容,则我们允许http://www.differentdomain.com <代码> 之类的其他域从http://www.example.com <代码> 进行引。

因此http://www.differentdomain.com <代码> 上的网页可以将我们的域用作图像的

& lt; https://www.yisu.com/zixun/img src=" http://www.example.com/img/cat.jpg ">

为单个路由启用歌珥

如果只需要其中某一个路由,可以在某个路由中将<代码>歌珥> app.get(& # 39;/& # 39;歌珥(),(点播,res)=比;{   res.json ({   信息:& # 39;你好& # 39;   });   });

使用node . js如何处理歌珥