Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从stackexchange导入json文件并使用node js(express)打印_Javascript_Node.js_Json_Express_Stackexchange Api - Fatal编程技术网

Javascript 从stackexchange导入json文件并使用node js(express)打印

Javascript 从stackexchange导入json文件并使用node js(express)打印,javascript,node.js,json,express,stackexchange-api,Javascript,Node.js,Json,Express,Stackexchange Api,我试图从StackExchangeAPI请求json文件,并在服务器加载时将其保存在客户端,以便在本地操作/更改它 我试着使用这段代码,但页面一直在加载,什么也没发生 const express=require('express'); const bodyParser=require('body-parser'); const request=require('request'); 常量app=express(); use(bodyParser.urlencoded({extended:true

我试图从StackExchangeAPI请求json文件,并在服务器加载时将其保存在客户端,以便在本地操作/更改它

我试着使用这段代码,但页面一直在加载,什么也没发生

const express=require('express');
const bodyParser=require('body-parser');
const request=require('request');
常量app=express();
use(bodyParser.urlencoded({extended:true}));
使用(bodyParser.json)
康斯特苏尔酒店https://api.stackexchange.com/2.2/users/11097431?order=desc&sort=reputation&site=stackoverflow';
应用程序使用(“/”,(请求、恢复、下一步)=>{
请求(surl,(错误、响应、正文)=>{
//res.setHeader(“内容类型”、“应用程序/json;字符集=utf-8”);
res.json(正文)
log('body:',body);
console.log('body:',req.body);
});
});
app.listen(3000,()=>{console.log('On port 3000…'))};
如果我在下面的代码中注释掉这两行

app.use(bodyParser.urlencoded({extended:true}));
使用(bodyParser.json)
它给出了这种输出

"\u001f�\b��\u0000��8z00\u0000^{4���=�c��\u0000��#c�\u0002\u0000\u0000"

如果有人能给我一个开始,那就太好了!谢谢。

输出乱七八糟,因为
body
是gzip压缩的。它不是JSON,甚至不是文本:

要将其返回到浏览器,最简单的方法是使用
管道

const request = require('request');
const surl = 'https://api.stackexchange.com/2.2/users/11097431?order=desc&sort=reputation&site=stackoverflow';

app.use('/', (req, res) => {
  request(surl).pipe(res);
});
或者,如果要操纵/更改主体,可以使用
gzip:true
选项:

const request = require('request');
const surl = 'https://api.stackexchange.com/2.2/users/11097431?order=desc&sort=reputation&site=stackoverflow';

app.use('/', (req, res) => {
  request({
    url: surl,
    gzip: true
  }, function(error, response, body) {
    let bodyObj = JSON.parse(body);
    // change bodyObj...
    res.json(bodyObj);
  });
});

输出是乱七八糟的,因为
body
是gzip压缩的。它不是JSON,甚至不是文本:

要将其返回到浏览器,最简单的方法是使用
管道

const request = require('request');
const surl = 'https://api.stackexchange.com/2.2/users/11097431?order=desc&sort=reputation&site=stackoverflow';

app.use('/', (req, res) => {
  request(surl).pipe(res);
});
或者,如果要操纵/更改主体,可以使用
gzip:true
选项:

const request = require('request');
const surl = 'https://api.stackexchange.com/2.2/users/11097431?order=desc&sort=reputation&site=stackoverflow';

app.use('/', (req, res) => {
  request({
    url: surl,
    gzip: true
  }, function(error, response, body) {
    let bodyObj = JSON.parse(body);
    // change bodyObj...
    res.json(bodyObj);
  });
});