连接mongodb数据库并插入多个数据
function insertMany(collection,arr){
return new Promise((resolve,reject)=>{
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://127.0.0.1:27017/';
MongoClient.connect(url,function(err,db){
if(err) {throw err}
var dbo = db.db('lolinfo');//连接 lolinfo 数据库
dbo.collection(collection).insertMany(arr,function(err,res){
if(err) reject(err);
console.log("文档输入成功 插入文档数为",res.insertedCount);
db.close();
resolve();
})
})
})
}
获取英雄列表
进入官网f12拿取接口
//获取英雄列表
async function getHeroList(){
let httpUrl = 'https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js';
let res = await axios.get(httpUrl);
console.log(res.data.hero);
await insertMany('herolist',res.data.hero);
return res.data.hero;
}
getHeroList()
通过heroID获取单个英雄信息
连接mongodb数据库并插入一个英雄信息
function insertOne(collection,obj){
return new Promise((resolve,reject)=>{
const MongoClient = require('mongodb').MongoClient
const url = 'mongodb://127.0.0.1:27017/'
MongoClient.connect(url,function(err,db){
if(err) {throw err}
var dbo = db.db('my');//连接 lolinfo 数据库
dbo.collection(collection).insertOne(obj,function(err,res){
if(err) reject(err)
console.log("文档输入成功");
db.close();
resolve()
})
})
})
}
插入数据
async function getHero(heroid){
let httpUrl = `https://game.gtimg.cn/images/lol/act/img/js/hero/${heroid}.js`
let result = await axios.get(httpUrl)
await insertOne('heroInfo',result.data.hero)
// console.log(result.data.hero);
return result.data
}
async function run(){
let herolist = await getHeroList()
// console.log(herolist);
await herolist.reduce(async (pre,item,index)=>{
await pre
return new Promise(async (resolve,reject)=>{
await getHero(item.heroId)
resolve()
})
},Promise.resolve())
}
run()