【问题标题】:Post function on every routes在每条路线上发布功能
【发布时间】:2015-03-28 18:01:32
【问题描述】:

目前我在每条路线上都复制相同的 .post 方法,因为我希望每条路线都有这种方法。有没有其他方法可以使所有路由都具有相同的方法而不重复它?

示例: 因为每个路由用户都可以向数据库发布一些东西。

api.js

api.route('/')
   .post(function(req, res) {
         var story = ({
            content: req.body.content;
         });
    story.save();

   });


api.route('/profile')

 .post(function(req, res) {
         var story = ({
            content: req.body.content;
         });
    story.save();

   });

仅供参考,是否每条路由只能执行一个 .get 或 .post 方法?

【问题讨论】:

    标签: node.js express mongoose mean-stack


    【解决方案1】:

    将逻辑包装在一个函数中:

    var yourFunction = function(req, res) {
       var story = ({
          content: req.body.content;
       });
       story.save();
    });
    

    并将其传递给您的路由定义:

    api.route('/').post(yourFunction);
    api.route('/profile').post(yourFunction);
    

    是否每条路由只能执行一个 .get 或 .post 方法?

    你可以拥有:

    api.route('/').get(yourFunction);
    api.route('/').post(yourOtherFunction);
    

    但你不能拥有:

    api.route('/').get(yourFunction);
    api.route('/').get(yourOtherFunction);
    

    在后者中,express 将考虑最后一个。

    【讨论】:

    • 感谢您的回答,但让我们在一条路线中说“/”,用户可以发布消息,用户可以发布推文。我将如何做到这一点?如果您希望我就这个问题提出一个新问题,请告诉我。
    • 在这种情况下,您必须在传递给路由的函数内部实现一些逻辑,以检查 req.body.content 是消息还是推文,然后做您想做的事与信息。
    猜你喜欢
    • 2013-12-23
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多