Node.js函数引用与解构赋值

函数引用什么时候要使用{}进行解构赋值?

什么时候引用外部js文件中的函数时要使用{}进行解构赋值?
输出时使用了{}来包裹的在外部js文件中引用时需要使用{}将变量括起。(具体可看下面的事例)

我的理解是:输出的时候是以 对象的属性 的形式输出,那么引用时就要使用 解构赋值 的方法将这些 属性 都分解出来再赋给变量,自然就会用上 解构赋值 。而输出时就以变量形式输出的引用时就变量形式引用即可。

例子1

在js文件顶部引用controller文件夹下blog.js文件内的getList函数时使用的是:

1
const { getList } = require("../controller/blog")

其实相当于:

1
const  getList  = require("../controller/blog").getList

之所以需要这样引用应该是输出的原因:

1
2
3
4
//接下来还会有函数需要输出,所以先使用对象的方式进行返回
module.exports = {
getList
}

反观输出时采用module.exports = handleBlogRouter的引用时使用const handleBlogRouter = require("./src/router/blog")即可。


例子2

在resModel.js中输出:

1
2
3
4
5
//输出
module.exports = {
SuccessModel,
ErrorModel
}

在blog.js中引用resModel.js中的SuccessModel、ErrorModel两个模块:

1
2
//引入resModel.js中的两个模块
const { SuccessModel, ErrorModel } = require("../model/resModel")

例子3

在blog.js中输出handleBlogRouter:

1
2
/* 不要忘记输出函数 */
module.exports = handleBlogRouter

在app.js中引用handleBlogRouter路由组件:

1
2
// 引用路由组件
const handleBlogRouter = require("./src/router/blog")