Files
PictureStory-v2/server/dbManager/mongoIO.js

65 lines
3.0 KiB
JavaScript

const fs = require('fs');
const mongoose = require('mongoose');
const Image = require('./../models/Image.model')
const Schema = mongoose.Schema;
mongoose.connect('mongodb+srv://mohiit1502:astalavista2402@cluster-ecstatica-base-adspg.mongodb.net/ecstatica?retryWrites=true&w=majority')
// const MongoClient = require('mongodb').MongoClient;
// const uri = "mongodb+srv://mohiit1502:astalavista2402@cluster-ecstatica-base-adspg.mongodb.net/test?retryWrites=true&w=majority";
// const client = new MongoClient(uri, { useNewUrlParser: true });
// client.connect(err => {
// const collection = client.db("test").collection("devices");
// // perform actions on the collection object
// client.close();
// });
module.exports = {
save: function(req, res) {
var files = req.files
var filesOrganized = {}
files && files.forEach((file) => {
var fileName
if (file.originalname.includes('compressed_20')) {
fileName = file.originalname.substring(0, file.originalname.indexOf('_compressed'));
file.name = fileName;
filesOrganized[fileName] = {...filesOrganized[fileName], compressed_20: file}
} else if (file.originalname.includes('compressed_60')) {
fileName = file.originalname.substring(0, file.originalname.indexOf('_compressed'));
file.name = fileName;
filesOrganized[fileName] = {...filesOrganized[fileName], compressed_60: file}
} else {
fileName = file.originalname.substring(0, file.originalname.indexOf('.'));
file.name = fileName;
filesOrganized[fileName] = {...filesOrganized[fileName], standard: file}
}
})
filesOrganized && Object.keys(filesOrganized).forEach((fileName) => {
var fileVariants = filesOrganized[fileName]
var timestamp = Date.now();
Object.keys(fileVariants).forEach((fileVariantKey) => {
var fileVariant = fileVariants[fileVariantKey];
var new_img = new Image
new_img.img.identifier = timestamp;
new_img.img.variant = fileVariantKey;
new_img.img.name = fileVariant.name
new_img.img.data = fs.readFileSync(fileVariants[fileVariantKey].path)
new_img.img.tags.push('nature')
new_img.img.contentType = 'image/jpeg';
new_img.save();
})
})
return res.json({ message: 'New image and its variants added to the db!' });
},
find: function(req, res) {
// return Image.findOne({}, 'img createdAt', function(err, img) {
Image.find({'img.variant': 'compressed_20', 'img.tags': 'nature'}, 'img createdAt', function(err, img) {
if (err)
res.send(err);
// console.log('images === ' + img);
res.contentType('json');
res.send(img);
}).sort({ createdAt: 'desc' });
}
}