mongodb - 在 Express 中重用 POST 和 GET 方法
问题描述
我正在构建一个 CMS,我必须在其中对我的 MongoDB 执行大量 POST 和 GET 请求。我现在遇到的问题是,我在 CMS 上工作的越多,我必须执行的 POST 和 GET 请求就越多,最终我的应用程序中会出现很多双重代码。我的问题是,我可以以某种方式重用 POST 和 GET 方法吗?我在前端使用 Express 框架、MongoDB 和 Angular。
这是我的应用程序的示例:
表达:
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模型:
文件1:
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 方法中有很多相同的代码。但我不知道我是如何让这个更干燥的
解决方案
建议1:
为每个表制作一个控制器文件。并且,在其中编写函数以在其中执行各种操作。并且,在调用服务的同时发送类型的操作。根据类型,您可以调用任何您想要的函数。
建议 2:
尝试使用 GraphQL
推荐阅读
- angular - 获取 QuotaExceededError
- excel - 如果工作簿正在使用并被锁定以进行编辑,我如何跳过它?
- html - 如何创建重复的嵌套 div 彩虹是 CSS
- android - Mutablelivedata 可变实例大小问题
- vue.js - 组件属性在一个 Vuex 状态更改时重新评估
- c# - 无法隐式转换类型“列表”
到 'IEnumerable ' - javascript - 使用 Jquery 多次按下按钮时修复表格中的行
- javascript - CKEDITOR 在本地工作,但不在 Internet Explorer 11 的服务器中
- mysql - 给定表的正确连接
- mysql - 在测试环境中使用带有休眠功能的 Spring Boot 的 JSON 数据类型