小编给大家分享一下使用节点。js如何处理歌珥,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!
介绍
在本文中,我们将研究怎样用表达配置歌珥以及根据需要定制歌珥中间件。
什么是歌珥
歌珥是“跨域资源共享”的简写。它是一种允许或限制向Web服务器上请求资源的机制,具体取决于进行HTTP请求的位置。
这种策略用于保护特定Web服务器免受其他网站或域的访问。只有允许的域才能访问服务器中的文件,例如样式表,图像或脚本等。
假设你当前使用的是http://example.com/page1 <代码> 代码,并且你引用的是来自http://image.com/myimage.jpg <代码> 代码>的图片,那么除非http://image.com <代码> 代码>允许与http://example.com <代码> 代码>进行跨域共享,否则将无法获取该图像。
每个HTTP请求头中都有一个名为<代码> 代码>起源的头。它定义了域请求的来源。可以用这个头的信息来限制引用你服务器上的资源。
默认来自任何其他来源的请求都会受到浏览器的限制。引用>例如当开发时如果用的是反应或Vue这类的前端库,则前端应用将运行在<代码> http://localhost: 3000 代码>上,同时,你的快递服务器可能正在其他端口上运行,例如<代码> http://localhost: 2020> 代码。这时就需要在这些服务器之间允许歌珥。
如果你在浏览器控制台中看到下图这类的错误。问题可能出在歌珥限制上:
如果我们需要提供公共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如何处理歌珥