【问题标题】:Re-use POST and GET methods in Express在 Express 中重用 POST 和 GET 方法
【发布时间】:2018-09-13 12:53:53
【问题描述】:

我正在构建一个 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 方法中有很多相同的代码。但我不知道如何让这个更干燥

【问题讨论】:

    标签: mongodb express post get


    【解决方案1】:

    建议一:
    为每个表制作一个控制器文件。并且,在其中编写函数以在其中执行各种操作。并且,在调用服务的同时发送类型的操作。根据类型,您可以调用任何您想要的函数。
    建议二:
    尝试使用 GraphQL

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-30
      • 2012-12-08
      • 2015-03-30
      • 1970-01-01
      • 2015-09-13
      • 1970-01-01
      • 2014-08-30
      • 1970-01-01
      相关资源
      最近更新 更多