为什么在expression4.x中像普通函数一样使用Router而不是构造函数
Why is Router used like normal function instead of constructor in express 4.x?
我是一个试图理解Express 4.x路线的新手,我正在阅读他们的指南:http://expressjs.com/guide/routing.html
在最后一段中,它说:
快车。路由器类可用于创建模块化可安装路由处理程序。路由器实例是一个完整的中间件和路由系统
附带代码为:
var express = require('express');
var router = express.Router();
为什么在没有new
运算符的情况下像普通函数一样调用这个express.Router
构造函数?他们在文档中说这是一个类,他们根据javascript风格(大写首字母(命名,但他们(以及所有其他在线示例(将其用作普通函数。
有些人喜欢在传统实例化之外支持函数样式。这是通过在函数顶部添加一个简单的检查来完成的:
function Router() {
if (!(this instanceof Router))
return new Router();
// ...
}
这允许支持两种类型的调用(使用new
和不使用(。
相关文章:
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- this.router在AngularJS 2中未定义
- Meteor Router数据函数被调用两次
- 使用向下箭头键(与tab键一样)聚焦下一个输入
- 如何在router.get()方法中传递url作为参数
- renderReact/Rect Router+Node/Express.js的服务器端/同构渲染中未定义renderP
- 骨干's Router.execute(callback,args,name)方法获取未定义的名称
- 有没有办法用routerLink/router.navigation附加查询/路由参数
- 在SVG地图上添加水的渐变,就像在谷歌地图(PHP/JS)中一样
- react router router.HistoryLocation以<noscript>但没有完美的工作
- 如何像模糊图像一样模糊iframe
- 使用express.具有多个url和可选参数的Router()
- FullCalendar:事件发生时阻止重叠.标题是一样的
- 如何检测滚动事件是否像在触摸设备上一样只触发一次
- 单击同一链接时,使Iron Router重新加载页面
- DIV怎么能像Javascript中的另一个元素一样工作呢
- 我正在创建一个聊天,但每次我发送消息时,它都不会让我再发送另一条消息,就像表格一样;不起作用
- 有没有8个谜题和15个谜题一样无法解决
- 如何缩放像图像一样的元素
- 为什么在expression4.x中像普通函数一样使用Router而不是构造函数