Я создаю CMS, где мне приходится делать много запросов POST и GET к моей MongoDB. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что чем больше я работаю с моей CMS, тем больше запросов POST и GET мне приходится выполнять, и в конечном итоге в моем приложении появляется много двойного кода. У меня вопрос, могу ли я как-нибудь повторно использовать методы POST и GET? Я использую Express Framework, MongoDB и Angular на Front-End.
Вот пример того, как выглядит мое приложение:
Экспресс:
router.post('/news_blocks', function(req, res, next){
var randomNumber = Math.floor(1000 + Math.random() * 9000);
var news_image = req.files.myImage;
news_image.mv('/home//projects/website/public/uploads/' + 'image_' + randomNumber + '.jpg' , function(err) {
if(err){
console.log(err);
}else{
var data = new news_blocks(postOptions(req, randomNumber));
saveToDB(data,res);
}
});
});
router.post('/research', function(req, res, next){
var randomNumber = Math.floor(1000 + Math.random() * 9000);
var research_image = req.files.myImage;
research_image.mv('/home/projects/website/public/uploads/' + 'image_' + randomNumber + '.jpg' , function(err) {
if(err){
console.log(err);
}else{
var data = new research_blocks(postOptions(req, randomNumber));
saveToDB(data,res);
}
});
});
postOptions = function(req, randomNumber){
var options = {
title: req.body.title,
date: new Date,
message: req.body.message,
image: 'image_' + randomNumber
};
return options;
};
Модель MongoDB:
file1:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var research_block = new mongoose.Schema({
title: String,
date: String,
message: String,
image: String
}, {collection: 'research'});
module.exports = mongoose.model("research", research_block);
Файл 2:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var news_block = new mongoose.Schema({
title: String,
date: String,
message: String,
image: String
}, {collection: 'news'});
module.exports = mongoose.model("news", news_block);
Как видите, в методах POST много одинакового кода. Но я не уверен, как сделать это более СУХОЙ