Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 了解后端_Javascript_Node.js_Reactjs_Backend_Fetch Api - Fatal编程技术网

Javascript 了解后端

Javascript 了解后端,javascript,node.js,reactjs,backend,fetch-api,Javascript,Node.js,Reactjs,Backend,Fetch Api,我知道一个网站可能有一个前端(客户端)和一个后端(服务器),服务器调用“外部”RESTAPI,如woocommerce等 为什么必须设置一个称为后端的整体结构,以便使用Node(Express)等语言调用RESTAPI?为什么不能在前端使用fetch('https://woocommerce/products) 编辑:谢谢大家发布你的答案,这对我的理解很有帮助!请随时继续,并提供任何其他见解,特别是关于为什么你这样回答会帮助我和其他未来可能遇到这个问题的新手的例子 因此,从概念上讲,在较新的浏览

我知道一个网站可能有一个前端(客户端)和一个后端(服务器),服务器调用“外部”RESTAPI,如woocommerce等

为什么必须设置一个称为后端的整体结构,以便使用Node(Express)等语言调用RESTAPI?为什么不能在前端使用
fetch('https://woocommerce/products)


编辑:谢谢大家发布你的答案,这对我的理解很有帮助!请随时继续,并提供任何其他见解,特别是关于为什么你这样回答会帮助我和其他未来可能遇到这个问题的新手的例子

因此,从概念上讲,在较新的浏览器中,如果服务器已设置,则可以从客户端执行此操作。否则,在较旧的浏览器中,向第三方发出的请求将由于错误而被阻止


此外,在许多情况下,您不希望客户机直接发出请求,因为这样您就必须向所有能够访问客户端代码的人公开API密钥。有些服务有办法解决这个问题(例如Firebase),但大多数都没有

实际上不需要设置后端。有很多方法可以在不设置后端的情况下运行站点。您可以使用诸如Firebase之类的BAAS服务


但是,只使用客户端的问题是,用户可以看到客户端发出的每个请求。并访问发送的数据或请求中发送的敏感API密钥-这对安全性非常有害,最终可能被误用。

基本的web安全措施可防止您询问的内容。在某些情况下,您可以不编写任何后端代码,但一般来说,您的后端所做的工作如下:存储不在某些外部API中的数据;使用您不希望任意客户端访问的凭据;或者提供额外的业务逻辑来简化客户机代码。