Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 什么';这两种呼叫express.router的方式有什么区别?_Node.js_Express_Routes - Fatal编程技术网

Node.js 什么';这两种呼叫express.router的方式有什么区别?

Node.js 什么';这两种呼叫express.router的方式有什么区别?,node.js,express,routes,Node.js,Express,Routes,我是Node/Express的新手,在阅读文档和做一些教程时,我发现Express路由器是以两种不同的方式初始化的。他们之间有什么有意义的变化吗 方法1: const express = require('express'); const router = express.Router(); router.get('/', (req, res) => { res.json({'Title': 'HELLO!'}); }); module.exports = router; 方法2:

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

方法1:

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

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

module.exports = router;
方法2:

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

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

module.exports = router;
方法1: 它需要express模块,然后调用Router()函数

方法2: 此功能在Javascript中称为对象分解。我们基本上是从express对象中分离特定的函数(路由器)


有关详细信息,请参阅。

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

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


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

谢谢。这是否会对任何类型的性能/速度产生影响?考虑到在第一种情况下,我调用整个对象,在第二种情况下,我仅从理论上导入一个模块,这将提高性能,因为您只从对象中获取所需的内容。但这无疑提高了可读性,并使代码干净且具有声明性。