Arc*_*ter 1 import export node.js requirejs
通过 Chai 运行一些测试,我注意到在这段代码下测试会失败:
const add = require('./addition');
//'add is not a function error' even though it's directly exported as a function
Run Code Online (Sandbox Code Playgroud)
但它会在以下情况下通过:
const {add} = require('./addition');
Run Code Online (Sandbox Code Playgroud)
然而,当使用 npm 模块时,所有内容都是在没有括号的情况下声明的:
var express = require('express');
var app = express();
var session = require('express-session');
Run Code Online (Sandbox Code Playgroud)
这些本质上是具有多个要访问的属性的对象。为什么会这样?是否只有函数导出必须显式分配为对象?
小智 5
这称为对象解构。请参考链接。
例如,您导出了一个名为 SampleFunctions.js 的文件,该文件具有以下导出函数
function function1(params) {};
function function2(params) {};
module.exports = {
sampleFunc1: function1,
sampleFunc2: function2
}
Run Code Online (Sandbox Code Playgroud)
现在,当您需要要求它时,有两种方法 -
let {sampleFunc1} = require('./sampleFunctions');
sampleFunc1();
Run Code Online (Sandbox Code Playgroud)
在此,您仅公开了所需的函数,而不是从该文件导出的所有函数。
let sampleFuncs = require('./sampleFunctions');
let samFunc1 = sampleFuncs.sampleFunc1;
samFunc1()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
453 次 |
| 最近记录: |