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!
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.
Create application
## Add key
Note here that different service platforms correspond to different available services. As shown below, I am using the web service## to generate the key
koa requests third-party interfacekoa2-requestRequesting a third-party interface in
nodeis 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.
npm install koa2-request
var koa2Req = require('koa2-request'); app.use(async(ctx, next) => { // request选项 var res = await koa2Req('http://www.baidu.com'); ctx.body = res.body; });
开干
Weather interfaceAfter we came in, we were surprised to find that he needed city and key as parameters
#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 positioninghttps://lbs.amap.com/api/webservice/guide/api/ipconfig
Two parameters are required here ip and key
Speaking of IP, you need a plug-in
Address https://www.npmjs.com/package/ public-ipconst publicIp = require('public-ip'); (async () => { console.log(await publicIp.v4()); //=> '46.5.21.123' console.log(await publicIp.v6()); //=> 'fe80::200:f8ff:fe21:67cf' })();
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 tutorialThe 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!