ExpressJS Google Api响应错误必需参数:q

ExpressJS Google Api响应错误必需参数:q,express,xmlhttprequest,google-books,Express,Xmlhttprequest,Google Books,我有一个ExpressJS,我想从GoogleBooksAPI检索数据。我创建了以下测试请求,旨在命中: 请求返回的不是有关书籍的信息,而是: { "error": { "errors": [ { "domain": "global", "reason": "required", "message": "Required parameter: q", "locationType": "parameter",

我有一个ExpressJS,我想从GoogleBooksAPI检索数据。我创建了以下测试请求,旨在命中:

请求返回的不是有关书籍的信息,而是:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "required",
        "message": "Required parameter: q",
        "locationType": "parameter",
        "location": "q"
      }
    ],
  "code": 400,
  "message": "Required parameter: q"
  }
}

下面的示例将在访问时使用请求客户端返回响应。请注意,我在qs对象中传递的是值
q
,而不是
query

const express = require('express');
const request = require('request');
const app = express();
const port = 3000;

app.get('/google', (req, res) => {
  request({
    uri: 'https://www.googleapis.com/books/v1/volumes',
    qs: {
      q: 'isbn:9781440346026'
    }
  }).pipe(res);
});

app.listen(port);

在您的请求中,属性设置为
query
。您应该将其更改为仅为值
q
,这将返回结果。这很有效!谢谢如果你把它表述为一个答案,我会接受。我把它作为一个答案贴出来,以便更好地说明
const express = require('express');
const request = require('request');
const app = express();
const port = 3000;

app.get('/google', (req, res) => {
  request({
    uri: 'https://www.googleapis.com/books/v1/volumes',
    qs: {
      q: 'isbn:9781440346026'
    }
  }).pipe(res);
});

app.listen(port);