【问题标题】:Why is Router used like normal function instead of constructor in express 4.x?为什么在 express 4.x 中,Router 像普通函数一样使用而不是构造函数?
【发布时间】:2015-08-19 00:40:09
【问题描述】:

我是新手,想了解 Express 4.x 路由,我正在阅读他们的指南:http://expressjs.com/guide/routing.html

在最后一段中它说:

express.Router 类可用于创建模块化可挂载路由 处理程序。 Router 实例是一个完整的中间件和路由 系统

随附的代码是:

var express = require('express');
var router = express.Router();

为什么这个 express.Router 构造函数会像没有 new 运算符的普通函数一样被调用?他们在文档中说它是一个类,他们根据 javascript 样式(大写首字母)命名它,但他们(以及所有其他在线示例)将它用作普通函数。

【问题讨论】:

    标签: javascript node.js express url-routing


    【解决方案1】:

    除了传统的实例化之外,有些人还喜欢支持函数式风格。这是通过在函数顶部添加一个简单的检查来完成的:

    function Router() {
      if (!(this instanceof Router))
        return new Router();
    
      // ...
    }
    

    这允许支持两种类型的调用(有new 和没有)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-18
      • 2022-12-18
      • 1970-01-01
      • 2015-06-10
      • 2012-06-28
      • 1970-01-01
      • 2017-11-10
      相关资源
      最近更新 更多