Home  >  Article  >  Web Front-end  >  How to use the koa framework in node to call the Gaode map interface

How to use the koa framework in node to call the Gaode map interface

青灯夜游
青灯夜游forward
2022-01-24 19:34:173004browse

How to use the koa framework in nodejs to call the Gaode map interface? The following article will introduce to you how to adjust the Gaode map interface in node koa. I hope it will be helpful to you!

How to use the koa framework in node to call the Gaode map interface

Amap Open Platform

What do we need most to adjust the Amap interface❓ We need the key of the Amap map. Follow the steps below to enter the Amap open platform.

How to use the koa framework in node to call the Gaode map interface

Create application

How to use the koa framework in node to call the Gaode map interface

## Add key

Note here that different service platforms correspond to different available services. As shown below, I am using the web service

How to use the koa framework in node to call the Gaode map interface

How to use the koa framework in node to call the Gaode map interface

## to generate the key

How to use the koa framework in node to call the Gaode map interface

koa requests third-party interface

koa2-requestRequesting a third-party interface in

node

is actually initiating a request request. The same principle applies to crawlers. We use koa2-request as the library for node to initiate requests. Because we use the koa framework.

    Address: https://www.npmjs.com/package/koa2-request Actually, you don’t need to read it, that’s all the introduction.
  • Installation:
  • npm install koa2-request
Basic usage
  • Async await is supported here
var koa2Req = require('koa2-request');
 
app.use(async(ctx, next) => {
    // request选项
    var res = await koa2Req('http://www.baidu.com');
    ctx.body = res.body;
});

开干

Weather interface

After we came in, we were surprised to find that he needed city and key as parameters

How to use the koa framework in node to call the Gaode map interface#But it is not practical for us to manually enter the code corresponding to the city. Even if I remembered it, it would be a very poor user experience. Then in fact, Amap also has an IP positioning interface. So let’s jump below and take a look.

IP positioning

https://lbs.amap.com/api/webservice/guide/api/ipconfig

Two parameters are required here ip and key

How to use the koa framework in node to call the Gaode map interfaceSpeaking of IP, you need a plug-in

Address https://www.npmjs.com/package/ public-ip
  • Basic usage
  • const publicIp = require('public-ip');
    
    (async () => {
    	console.log(await publicIp.v4());
    	//=> '46.5.21.123'
    
    	console.log(await publicIp.v6());
    	//=> 'fe80::200:f8ff:fe21:67cf'
    })();
  • The following is my specific implementation, using ip and key as parameters
const koa2Req = require('koa2-request');
const publicIp = require('public-ip') // 获取外网ip
const gaode_key = '8a674879652195a8bc6ff51357199517'
class clientController {
    async getWeather(ctx, next) {
        const ip_param = await publicIp.v4()
        var res = await koa2Req(`https://restapi.amap.com/v3/ip?ip=${ip_param}&output=json&key=${gaode_key}`);
        ctx.body = res;
    }
}

The format of the return value

{

       "status" :"1",
       "info" :"OK",
       "infocode" :"10000",
       "province" :"北京市",
       "city" :"北京市",
       "adcode" :"110000",
       "rectangle" :"116.0119343,39.66127144;116.7829835,40.2164962"

  }

We want to get the city code adcode, res.body is the value we get back from the interface. Use JSON.parse to convert it to a JSON object.

    async getWeather(ctx, next) {
        const ip_param = await publicIp.v4()
        var res = await koa2Req(`https://restapi.amap.com/v3/ip?ip=${ip_param}&output=json&key=${gaode_key}`);
        const city = JSON.parse(res.body).adcode
        console.log(city,'city')
    }

Next, you can call the weather interface. The weather interface requires the city code and key we just obtained as parameters.

    async getWeather(ctx, next) {
        const ip_param = await publicIp.v4()
        var res = await koa2Req(`https://restapi.amap.com/v3/ip?ip=${ip_param}&output=json&key=${gaode_key}`);
        const city = JSON.parse(res.body).adcode
        console.log(city,'city')
        var res_weather = await koa2Req(`https://restapi.amap.com/v3/weather/weatherInfo?city=${city}&key=${gaode_key}`)
        let weather = {data: JSON.parse(res_weather.body)}
        ctx.body = weather;
    }

For more node-related knowledge, please visit:

nodejs tutorial

!

The above is the detailed content of How to use the koa framework in node to call the Gaode map interface. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:juejin.cn. If there is any infringement, please contact admin@php.cn delete