是否有 Node.js 函数来读取服务器上文件的内容?
Is there a Node.js function to read the contents of a file on a server?
我最初的问题被标记为一个完全不相关的问题的重复项,该问题与我的问题完全没有共同之处,所以我重新发布这个问题并做了一些澄清,希望能让我更清楚地知道我想做什么。
假设我在服务器上有一个文件 NOT 我的服务器:
https://example.com/names.txt
是否有功能可以让我将此文件作为 String
或 Buffer
来读取?
显而易见的解决方案是将文件下载到一个临时目录中,读取其内容,然后将其删除,但这非常慢并且需要多行代码。 有更简洁的方法吗?
您必须向该服务器请求该文件。 (例如 GET 请求)使用您选择的模块。
Making a request with the HTTP module
注意:在示例中,on('data', ...)
回调中的 d
将是您想要的。
假设文件位于 http 服务器上,您可以使用列出的 http 请求模块之一 here 来请求该文件。通常的默认行为是将来自 http 服务器的响应获取到内存中,但如果需要,您可以将其放入文件中。
内置的 http 库可以做到这一点,但它比我上面 link 中的高级库需要更多的代码行,这是它们的主要优点。
这是一个简单示例,使用我最喜欢的此类库 got 模块(具有内置承诺支持):
const got = require('got');
got("https://someserver.com/somefile.txt").text().then(result => {
console.log(result);
}).catch(err => {
console.log(err);
});
got
库有方法 .text()
、.json()
和 .buffer()
用于获取响应主体、解析它(如果需要)并将结果放入右侧变量的类型。我上面的示例使用 .text()
因为您提到将响应放入字符串中。如果你想把它放在缓冲区中,你可以使用 .buffer()
代替。
我最初的问题被标记为一个完全不相关的问题的重复项,该问题与我的问题完全没有共同之处,所以我重新发布这个问题并做了一些澄清,希望能让我更清楚地知道我想做什么。
假设我在服务器上有一个文件 NOT 我的服务器:
https://example.com/names.txt
是否有功能可以让我将此文件作为 String
或 Buffer
来读取?
显而易见的解决方案是将文件下载到一个临时目录中,读取其内容,然后将其删除,但这非常慢并且需要多行代码。 有更简洁的方法吗?
您必须向该服务器请求该文件。 (例如 GET 请求)使用您选择的模块。
Making a request with the HTTP module
注意:在示例中,on('data', ...)
回调中的 d
将是您想要的。
假设文件位于 http 服务器上,您可以使用列出的 http 请求模块之一 here 来请求该文件。通常的默认行为是将来自 http 服务器的响应获取到内存中,但如果需要,您可以将其放入文件中。
内置的 http 库可以做到这一点,但它比我上面 link 中的高级库需要更多的代码行,这是它们的主要优点。
这是一个简单示例,使用我最喜欢的此类库 got 模块(具有内置承诺支持):
const got = require('got');
got("https://someserver.com/somefile.txt").text().then(result => {
console.log(result);
}).catch(err => {
console.log(err);
});
got
库有方法 .text()
、.json()
和 .buffer()
用于获取响应主体、解析它(如果需要)并将结果放入右侧变量的类型。我上面的示例使用 .text()
因为您提到将响应放入字符串中。如果你想把它放在缓冲区中,你可以使用 .buffer()
代替。