【问题标题】:Fetch local files with Node.js使用 Node.js 获取本地文件
【发布时间】:2022-12-17 19:10:05
【问题描述】:

在浏览器环境中获取本地文件非常简单:只需要​​启动服务器(使用 MAMP、XAMP、Mac 的 Python 服务器等...),然后执行以下操作:

fetch("./foo.txt").then(etc...)

然而,在 Node.js 中,这个简单的任务一直是一个挑战。我已经使用 Node 18(带有实验性获取 API)尝试了相同的 sn-p,但我总是得到一个无效的网址错误:

类型错误:无法从 foo.bar 解析 URL

[原因]: TypeError [ERR_INVALID_URL]: 无效的 URL

我试过安装node-fetch,但我遇到了同样的错误。我可以为 http-server 之类的节点启动本地服务器,但它告诉我去 http://localhost:8080 查看服务器,也就是说,使用浏览器,但问题是我可以在没有节点的情况下做到这一点,仅使用节点构建是重点。

我的问题是:是否可以在节点构建(Sublime Text、VS Code 等...)中获取本地文件,没有使用浏览器? (注意:我可以用fs来做,但在我的问题中我只想讨论fetch

【问题讨论】:

标签: javascript node.js server fetch-api


【解决方案1】:

我的问题是:是否可以在不使用浏览器的情况下在节点构建(Sublime Text、VS Code 等...)中获取本地文件? (注意:我可以用 fs 做到这一点,但在我的问题中我只想讨论获取)

fetch 的 Node.js 实现目前不支持 file: scheme URLs…


fetch("file:///tmp/123").then(r => r.text()).then(d => console.log(d));

报告:

错误:未实施……还……


……(看起来)它也不会解析到 file: 方案 URI 的相对路径。

您需要使用 fs 模块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    相关资源
    最近更新 更多