Files
2024-10-21 10:22:26 +03:30

51 lines
1.6 KiB
JavaScript

const mongoose = require('mongoose')
const dynamicModelSchema = new mongoose.Schema({}, { strict: false });
module.exports.CreateModel = [
async (req, res, next) => {
try {
const { modelName, fields } = req.body;
if (!modelName || !fields || !Array.isArray(fields)) {
return res.status(400).send('ورودی نامعتبر');
}
if (mongoose.modelNames().includes(modelName)) {
return res.status(400).json({ message: "مدل قبلا ایجاد شده" });
}
const schemaDefinition = {};
fields.forEach(field => {
schemaDefinition[field] = { type: String };
});
const schema = new mongoose.Schema(schemaDefinition);
mongoose.model(modelName, schema);
return res.status(200).json(`مدل ${modelName} ایجاد شد با فیلد های: ${fields.join(', ')}`);
} catch (e) {
next(e);
}
}
];
module.exports.SaveDataModel = [
async (req,res,next)=>{
const { modelName, data } = req.body;
if (!modelName || !data || typeof data !== 'object') {
return res.status(400).send('ورودی نامعتبر');
}
try {
const DynamicModel = mongoose.model(modelName);
const instance = new DynamicModel(data);
await instance.save();
res.send('داده فرم ذخیره شد');
} catch (error) {
next(error)
}
}
]