1、下载MongonDB
c盘根目录将data文件夹
2、打开两个命令窗口,一个命令窗口输入mongod,另一个输入mongo
(可以打开 MongoDB Compass 可视化工具查看数据库)
3、建立文件夹,在VSCode中打开,创建数据库语句的js文件
4、在输入mongo的命令窗下输入db.workmate.find(),可查看建立好的workmate
5、在输入mongo的命令窗下输入各种查询命令
//常用命令
db admin //连接admin数据库,默认连接test数据库
db.version() //查看当前数据库的版本
use smile; //创建数据库,如果不创建集合则会自动删除
db.getCollectionNames() //查看当前数据库创建的集合
db.testdb.insert({name:'ddsfa',age:'12'}) //向集合插入数据
db.testdb.find({name:'ddsfa',age:1}) //查询testdb集合,字段name=ddsfa的,age=1(age字段也查)
page=3 limit=5 则 num = (page-1)*limit
db.testdb.find().skip(num).limit(limit) //根据页码查
二、koa2在项目中使用
1、在vue项目的根目录下新建service文件夹,并cd service 进入
2、使用cnpm init -y
生成并初始化package.json 文件。
3、在终端中使用cnpm来安装koa,cnpm install --save koa
4、在service文件夹下新建index,js文件,内容如下:
const Koa = require('koa')
const app = new Koa()
app.use(async(ctx)=>{
ctx.body = '<h1>hello Koa2</h1>'
})
app.listen(3000,()=>{
console.log('[Server] starting at port 3000')
})
5、在浏览器上输入:127.0.0.1:3000,出现内容则安装成功
node+mongodb爬虫
新建文件夹:pachonapp
安装:cnpm install mongodb
cnpm install axios
建index.js:
let axios = require("axios");
//封装多条内容插入
function inserMany(collection,arr){
return new Promise((resolve,rejects)=>{
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
if (err) throw err;
var dbo = db.db("lol");
dbo.collection(collection).insertMany(arr, function(err, res) {
if (err) throw rejects(err);
console.log("文档插入数量"+res.insertedCount);
db.close();
resolve()
});
});
})
}
//封装单条内容插入
function inserOne(collection,obj){
return new Promise((resolve,rejects)=>{
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
if (err) throw err;
var dbo = db.db("lol");
dbo.collection(collection).insertOne(obj, function(err, res) {
if (err) throw rejects(err);
console.log("文档插入one");
db.close();
resolve()
});
});
})
}
async function getHeroList(){
let httpurl ="https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js"
let result = await axios.get(httpurl)
console.log(result.data.hero)
await inserMany("herolist",result.data.hero)
return result.data.hero
}
async function getHero(heroid){
let httpurl =`https://game.gtimg.cn/images/lol/act/img/js/hero/${heroid}.js`
let result = await axios.get(httpurl)
console.log(result.data.hero)
await inserOne("heroinfo",result.data.hero)
return result.data.hero
}
async function getdata(){
let herolist = await getHeroList()
await herolist.reduce(async (prev,item,i)=>{ //上一个请求完了才做下一条
await prev
return new Promise(async (resolve,rejects)=>{
await getHero(item.heroId)
resolve()
})
},Promise.resolve())
}
getdata()
运行:node index.js
则会把数据放到lol数据库下的,herolist和heroinfo表下