klnodekb/public/js/export_db.js

48 lines
1.4 KiB
JavaScript

const asyncHandler =require('express-async-handler')
const mongoose = require('mongoose');
let Employee = require('../../models/employee');
let WorkingTime = require('../../models/workingtime');
var fs = require('fs');
var path = require('path');
exports.exportWorktime=asyncHandler(async (req,res)=>{
const {userId} =req.params;
if (!userId){
res.status(400).send('Invalid Id!');
return;
}
let employees=await Employee.find({});
for (employee of employees){
try{
let doc=await WorkingTime.find({"employeeId":new mongoose.Types.ObjectId(employee._id)})
let z=[];
if (!doc){
res.status(500).json({err:'No data Found!',doc:null});
return;
}
let data = JSON.stringify(doc)
let v=JSON.parse(data)
v.forEach((x)=>{
x._id='ObjectId("'+x._id.toString()+'")'
x.employeeId='ObjectId("'+x.employeeId.toString()+'")'
})
const exportFolder = path.join(".", './exportDB/');
// var type='img';
if (!fs.existsSync(exportFolder)){
fs.mkdirSync(exportFolder,{recursive: true}, err => {})
}
const i=JSON.stringify(v,null,'\t')
await fs.writeFileSync(exportFolder+'/'+employee._id,i);
//console.log(i);
//res.status(200).json({err:null,doc:i});
} catch(err){
// res.status(500).json({err:err,doc:null});
}
}
res.status(200).json("OK");
})