【问题标题】:node express.Router().route() vs express.route()节点 express.Router().route() 与 express.route()
【发布时间】:2015-12-11 22:30:36
【问题描述】:

我应该使用什么:

express.Router().route()

express.route()

?

express.Router().route() 是不是真的被弃用了?

【问题讨论】:

    标签: node.js express routes


    【解决方案1】:

    对于当前版本的 Express,您应该使用 express.Router().route()。见快递documentation 确认。 express.Router().route() 不折旧。

    例如:

    var router = express.Router();
    
    router.param('user_id', function(req, res, next, id) {
      // sample user, would actually fetch from DB, etc...
      req.user = {
        id: id,
        name: 'TJ'
      };
      next();
    });
    
    router.route('/users/:user_id')
    .all(function(req, res, next) {
      // runs for all HTTP verbs first
      // think of it as route specific middleware!
      next();
    })
    .get(function(req, res, next) {
      res.json(req.user);
    })
    .put(function(req, res, next) {
      // just an example of maybe updating the user
      req.user.name = req.params.name;
      // save user ... etc
      res.json(req.user);
    })
    .post(function(req, res, next) {
      next(new Error('not implemented'));
    })
    .delete(function(req, res, next) {
      next(new Error('not implemented'));
    })
    

    【讨论】:

    • 谢谢...还有一个疑问:我可以使用:optionalParameterexpress.Router().route() 吗?我在文档中找不到它... app.route() 可以做到,使用“?”在参数名称之后...
    • 是的,它可以处理
    【解决方案2】:

    Router.route() 可以用于可链接的路由。 含义:所有方法都有一个 API,可以在 .route() 中编写。

        var app = express.Router();
        app.route('/test')
          .get(function (req, res) {
             //code
          })
          .post(function (req, res) {
            //code
          })
          .put(function (req, res) {
            //code
          })
    

    【讨论】:

      猜你喜欢
      • 2015-12-11
      • 2015-09-15
      • 2019-01-20
      • 2020-07-24
      • 1970-01-01
      • 2014-06-23
      • 1970-01-01
      • 2022-09-29
      • 1970-01-01
      相关资源
      最近更新 更多