Restify + https模块发送到客户端后无法设置标头

时间:2018-11-05 04:27:02

标签: node.js express restify

我实际上正在尝试在restify调用内调用google API。但是我有两个问题:

1-将标头发送到客户端后无法设置

下面的代码向我返回此错误,即使在寻找如何摆脱Google上的此错误后,我仍然找不到解决此错误的方法。

routes
    .use(server)
    .set('/test', 'get', function(req, res, next) {

            var opts = {
                host: "maps.googleapis.com",
                port : 443,
                path: "/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=1500&type=restaurant&keyword=cruise&key=xxx"
            }

            var rsl;
            https.get(opts, function(res2) {
                res2.on('data', (d) => {
                    rsl = d.toString('utf8');
                    res.send(200, rsl);
                    return next();
                });
            }).on('error', (e) => {
                  console.error(e);
            });
})

2-我现在并不真的在乎这个,但这将是我的下一个问题。我在整个Google API调用中要求在json中获取结果,但仍然得到一个缓冲区,而且我不知道如何在json中启用它。如果您有任何想法,那就欢迎您!

1 个答案:

答案 0 :(得分:0)

  

1-将标头发送到客户端后无法设置

headers应该是发送带有请求的标头的选项的一部分。

var opts = {
             host: "maps.googleapis.com",
             port : 443,
             path: "/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=1500&type=restaurant&keyword=cruise&key=xxx",
            headers: {
        }
      }
  

google API调用以在json中获取结果,但仍然得到一个缓冲区

Google Maps api文档-https://developers.google.com/maps/documentation/geocoding/intro

以json格式返回响应的示例请求-https://maps.googleapis.com/maps/api/geocode/json?&address=dubai