【问题标题】:What's the difference between these 2 ways of calling express.router?这两种调用express.router的方式有什么区别?
【发布时间】:2020-05-04 06:27:12
【问题描述】:

我是 Node/Express 的新手,在阅读文档和做一些教程时,我发现 Express Router 以两种不同的方式初始化。他们之间有什么有意义的变化吗?

方法一:

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

router.get('/', (req, res) => {
res.json({'Title': 'HELLO!'});
});

module.exports = router;

方法二:

const { Router } = require('express');
const router = Router ();

router.get('/', (req, res) => {
res.json({'Title': 'HELLO!'});
});

module.exports = router;

【问题讨论】:

    标签: node.js express routes


    【解决方案1】:

    方法一: 它需要 express 模块,然后调用 Router() 函数。

    方法二: 此功能在 Javascript 中称为对象解构。我们基本上是将特定功能(路由器)从 express 对象中分离出来。

    更多信息请参考this

    【讨论】:

    • 谢谢。这对任何类型的性能/速度有影响吗?考虑到在第一种情况下我调用整个对象,而在第二种情况下我只导入一个模块
    • 理论上,它应该可以提高性能,因为您只从对象中获取所需的内容。但这肯定会提高可读性,并使代码干净且具有声明性。
    【解决方案2】:

    方法 1:代码首先导入 Express 应用程序对象,使用它来获取路由器对象。

    方法2:这里ES6 对象销毁用于从单个模块导入多个子模块(或在本例中为单个)。

    方法 2 是当您需要使用单行代码从单个模块导入多个子模块时。否则,您必须包含整个对象或单独导入每个子模块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 2019-03-31
      • 2021-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多