首页 > 解决方案 > 在 node.js 中下载接收零字节

问题描述

我正在尝试从某个 url 下载一个 json 文件,这样我就可以从 rec.net 获取用户信息,但它总是返回零字节的信息,我找到了我需要下载的所有 json 文件。下载在一个名为 dwn 的函数中运行,该函数具有多种类型的下载,我什至尝试在函数外部的 dwn 中运行相同的代码,但仍然是零字节。网址没有json结尾,很奇怪,我也可以在浏览器中下载文件。我还做了一个简单的 json for 循环。这是我的代码:

const fs = require('fs');
const http = require('http');
const apiver = "/v4/";
// after add type and ver
const apibaseurl = "http://api.rec.net/api/";
const imgbaseurl = "http://img.rec.net/";
const id = 6286306;
const accurl = `http://accounts.rec.net/account/${id}`;
const biourl = `${accurl}/bio`;
const imgurl = `${apibaseurl}images${apiver}player/`;
const skipperamnt = "?skip=0&take=4096";

function dwn(type, url, name) {
if (type == 1) {
  const file = fs.createWriteStream(name);
  const request = http.get(`${url}`, function(response) {
    response.pipe(file);
  });
} else if (type == 2) {
    const file = fs.createWriteStream("rrfetch.json");
  const request = http.get(`${imgurl}${id}${skipperamnt}`, function(response) {
    response.pipe(file);
  });
} else {
console.log("wrong int supplied in type spot bruh moment u stupid :(((")
}
}
console.log(`${accurl}`);
dwn(1, `${accurl}`, "accname.json");
dwn(1, `${biourl}`, "bio.json");
dwn(2, "", "");
try {

    // const imgdata = fs.readFileSync('./rrfetch.json', 'utf8');
    const usrdata = fs.readFileSync('./accname.json', 'utf8');

    // parse JSON string to JSON object
    // const rrimgdata = JSON.parse(imgdata);
    const rrusrdata = JSON.parse(usrdata);
    rrusrdata.forEach(usr => {
      console.log(`Player Username: ${usr.username}, Player Display Name: ${usr.displayName}`);
    });
    // print all databases
    /* rrimgdata.forEach(img => {
        console.log(`Image Name: ${img.ImageName}, People in Image: ${img.TaggedPlayerIds}, Uploader: ${img.PlayerId}`);
        dwn(1, `${imgbaseurl}${img.ImageName}`, `${img.ImageName}`);
    });
    */

} catch (err) {
    console.log(`${err}`);
}

标签: node.js

解决方案


推荐阅读