[英]in express js how to read content from a file that i get as a response from another api and store the content in a variable?
有一个 api 端点 - https://lichess.org/game/export/q7ZvsdUF 。
如果您在浏览器中打开此 api,它会下载一个扩展名为.pgn 的文件
我有一个快速 js 服务器。 我正在使用 node-fetch 库来访问这个端点。 我需要读取该文件的内容并将其作为字符串存储在变量中。 我如何阅读这个文件的内容?
这些是针对此 api 的响应的标头
server: nginx
date: Wed, 17 Aug 2022 09:03:04 GMT
content-type: application/x-chess-pgn
content-length: 5539
vary: Origin
content-disposition: attachment; filename=lichess_pgn_2017.12.28_Lance5500_vs_TryingHard87.q7ZvsdUF.pgn
access-control-allow-origin: *
access-control-allow-headers: Origin, Authorization, If-Modified-Since, Cache-Control
access-control-allow-methods: OPTIONS, GET, POST, DELETE
strict-transport-security: max-age=63072000; includeSubDomains; preload
expect-ct: max-age=31536000, enforce
x-frame-options: DENY
permissions-policy: interest-cohort=()
提前致谢。
更新---答案
const value = await new Promise((resolve, reject) => {
const data = [];
response.body.on("data", (c) => data.push(c));
response.body.on("end", (_) => resolve(Buffer.concat(data).toString()));
response.body.on("error", reject);
});
如果响应 header 是application/json
那么你可以像这样await response.json()
来获取数据。 如果不是,您可以执行上述方法将 stream 转换为字符串以在变量中使用它。
我希望您的磁盘上已经有该文件。 你试过这个:
var fs = require('fs');
fs.readFile('my-file.pgn', 'utf8', function(err, data) {
if (err) throw err;
console.log(data);
});
也许您必须调整编码标志才能获得正确的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.