从javascript获取和从node.js获取节点,有啥区别[关闭]

Posted

技术标签:

【中文标题】从javascript获取和从node.js获取节点,有啥区别[关闭]【英文标题】:fetch from javascript and node-fetch from node.js, what are the differences [closed]从javascript获取和从node.js获取节点,有什么区别[关闭] 【发布时间】:2021-10-29 03:28:10 【问题描述】:

我最近在 udemy 上学习如何编码,但遇到了一个问题。当我们获取 api 时,我们可以从浏览器获取,也可以从 node.js 使用 node-fetch。我想知道它们之间有什么区别。我们可以不通过web服务器直接从外部服务器获取api吗?如果可以,我们应该从node.js获取数据吗?

【问题讨论】:

请提供足够的代码,以便其他人更好地理解或重现问题。 请返回并与答案互动。我们希望您能accept the answer you chose as useful 【参考方案1】:

Node.js 默认不附带 fetch 库。 Fetch API 只存在于 webbrowsers 下的 window.fetch。 Node-fetch 只是一个包含这个 webbrowser fetch 的轻量级库。

也就是说在 Node.js 中安装和使用 fetch 使用以下命令:

npm i node-fetch

然后导入它使用

import fetch from 'node-fetch';

查看node-fetch的官方npm包。

Fetch API 非常基础。如果您必须在 Node.js 应用程序中使用 Http 请求,我建议您使用 axios

【讨论】:

好的,我也会尝试使用 axios。非常感谢 没问题,如果您对答案感到满意,请考虑接受!【参考方案2】:

我们可以尝试从浏览器获取外部 API。如果端点不希望您从浏览器访问他们的 API,这可能会导致 Cross Origin Resource Sharing (CORS) 错误

然后您可以编写一个从服务器访问外部 API 的代理,无论 CORS 设置如何,都将允许该代理

因此,从 NODE 访问 API 将始终有效(假设不需要身份验证)并且从浏览器获取可能会或可能不会直接工作。

注意:node-fetch 不是 node 原生的

【讨论】:

非常感谢您的回复,这对我帮助很大。这就是我想要的确切答案。

以上是关于从javascript获取和从node.js获取节点,有啥区别[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Solana - 如何从 JavaScript / Node.js 中的本地密钥对获取帐户?

获取javascript时Node.js HTML页面错误404

JavaScript/node.js:尝试访问某个函数之外的对象属性时获取 NULL

javascript 获取node.js应用程序的根路径

javascript 获取node.js应用程序的根路径

javascript node.js在try catch中获取行号?