gpt4 book ai didi

node.js - 在 Node 中,为什么 'require' 赋值有时需要大括号?

转载 作者:太空宇宙 更新时间:2023-11-03 23:14:57 24 4
gpt4 key购买 nike

通过 Chai 运行一些测试,我注意到在这段代码下测试会失败:

const add = require('./addition');
//'add is not a function error' even though it's directly exported as a function

但它会在下面通过:

const {add} = require('./addition');

然而,当使用 npm 模块时,所有内容都是在没有括号的情况下声明的:

var express = require('express');
var app = express();
var session = require('express-session');

这些本质上是具有多个要访问的属性的对象。为什么会这样?是否只有函数导出必须显式分配为对象?

最佳答案

这称为对象解构。请引用link .

例如,您导出了一个名为 SampleFunctions.js 的文件,该文件具有以下导出函数

function function1(params) {};
function function2(params) {};

module.exports = {
sampleFunc1: function1,
sampleFunc2: function2
}

现在当你需要要求它时,有两种方法 -

  • 当你只需要一个函数时(使用对象解构)
let {sampleFunc1} = require('./sampleFunctions');
sampleFunc1();

在此,您仅公开了所需的函数,而不是从该文件导出的所有函数。

  • 当您想要使用该文件中的所有函数时
let sampleFuncs = require('./sampleFunctions');
let samFunc1 = sampleFuncs.sampleFunc1;
samFunc1()

关于node.js - 在 Node 中,为什么 'require' 赋值有时需要大括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56702329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com