一、node用fs读入数据
在service文件夹下,新建一个fsJson.js的文件使用node的fs模块,可以轻松把文件读取到程序中,然后进行便利,把有用的数据提取出来,写入到一个新的数组中,请看下面代码.
const fs
= require('fs')
fs
.readFile('.goods.json', 'utf8', function(err
, data
){
let newData
= JSON.parse(data
)
let i
=0
let pushData
=[]
newData
.RECORDS.map(function(value
,index
){
if(value
.IMAGE1!=null){
i
++
console
.log(value
.NAME)
pushData
.push(value
)
}
})
console
.log(i
)
console
.log(pushData
)
});
写入到新的文件中fs
.writeFile('./newGoods.json',JSON.stringify(pushData
),function(err
){
if(err
) console
.log('写文件操作失败');
else console
.log('写文件操作成功');
});
这样就完成了这次数据的提纯操作,通过提纯我们得到了一张可用的json商品详情表。通过这节的学习主要是了解一下node的fs模块,因为这在我们工作中是非常常用的。
二、批量插入数据库的路由方法
新建一个service/appApi/goods.js以后关于商品的操作就都在这个api文件中编写了,我们也是要写路由的形式,提供每一个支持。
const Koa
= require('koa')
const app
= new Koa()
const Router
= require ('koa-router')
let router
= new Router()
const mongoose
= require('mongoose')
const fs
= require('fs')
router
.get('/insertAllGoodsInfo',async(ctx
)=>{
fs
.readFile('./goods.json','utf8',(err
,data
)=>{
data
=JSON.parse(data
)
let saveCount
=0
const Goods
= mongoose
.model('Goods')
data
.map((value
,index
)=>{
console
.log(value
)
let newGoods
= new Goods(value
)
newGoods
.save().then(()=>{
saveCount
++
console
.log('成功'+saveCount
)
}).catch(error
=>{
console
.log('失败:'+error
)
})
})
})
ctx
.body
="开始导入数据"
})
module
.exports
=router
;
to be continued…