通过Node.js获取高德的省市区数据并插入数据库
以下是一个简化的示例,展示了如何使用Node.js和高德地图API获取省市区数据,并将其插入数据库中。假设我们使用的是MySQL数据库,并且已经有一个名为region
的表,该表至少包含code
、name
和parent_code
字段。
const axios = require('axios');
const mysql = require('mysql');
// 配置数据库连接
const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database'
});
// 连接数据库
connection.connect();
// 高德地图API的key
const amapKey = '你的高德地图API Key';
// 获取省市区数据的函数
async function fetchRegions(level, parentCode = '') {
const url = `https://restapi.amap.com/v3/config/district?keywords=${level}&subdistrict=1&key=${amapKey}`;
try {
const response = await axios.get(url);
if (response.data.infocode === '10000') {
const regions = response.data.districts[0].districts;
regions.forEach(region => {
connection.query(
'INSERT INTO region (code, name, parent_code) VALUES (?, ?, ?)',
[region.adcode, region.name, parentCode],
(error, results, fields) => {
if (error) throw error;
// 递归获取下级区域
fetchRegions(level, region.adcode);
}
);
});
}
} catch (error) {
console.error(error);
}
}
// 从省级开始获取数据
fetchRegions('省');
// 关闭数据库连接
connection.end();
确保在运行此代码之前,你已经安装了axios
和mysql
模块,可以使用npm install axios mysql
命令进行安装。此外,替换your_username
、your_password
、your_database
和你的高德地图API Key
为你自己的数据库和高德地图API信息。
请注意,该示例代码为简化示例,不包括错误处理和生产环境的最佳实践。在实际应用中,应该添加更多的错误处理和数据验证机制。
评论已关闭