Mi pregunta inicial se marcó como un duplicado de una pregunta completamente ajena que no tiene absolutamente nada en común con mi pregunta, por lo que vuelvo a publicar esto con algunas aclaraciones que, con suerte, deberían aclarar lo que quiero hacer.
Supongamos que tengo un archivo en un servidor que NO es mi servidor:
https://example.com/names.txt ¿Hay alguna función que me permita leer este archivo como una String o como un Buffer ?
La solución obvia sería descargar el archivo en un directorio temporal, leer su contenido y luego eliminarlo, pero esto es muy lento y requiere muchas líneas de código. ¿Hay una manera más limpia de hacer esto?
Tendría que hacer una solicitud a ese servidor para ese archivo. (por ejemplo, una solicitud GET) utilizando el módulo de su elección.
Hacer una solicitud con el módulo HTTP
Nota: en el ejemplo, d en la devolución de llamada on('data', ...) será lo que desee.
Suponiendo que el archivo está en un servidor http, puede usar uno de los módulos de solicitud http enumerados aquí para realizar una solicitud para ese archivo. El comportamiento predeterminado habitual es obtener la respuesta del servidor http en la memoria, aunque puede ponerla en un archivo si lo desea.
La biblioteca http incorporada puede hacer esto, pero requiere más líneas de código que las bibliotecas de nivel superior en mi enlace anterior, que es su principal beneficio.
Aquí hay un ejemplo simple usando mi opción favorita para este tipo de biblioteca, el módulo obtenido (que tiene soporte de promesa incorporado):
const got = require('got'); got("https://someserver.com/somefile.txt").text().then(result => { console.log(result); }).catch(err => { console.log(err); }); La biblioteca obtenida got métodos .text() , .json() y .buffer() para obtener el cuerpo de la respuesta, analizarlo (si es necesario) y colocar el resultado en el tipo correcto de variable. Mi ejemplo anterior usa .text() ya que mencionaste obtener la respuesta en una cadena. Si lo quiere en un búfer, usaría .buffer() en su lugar.