如何在Node.js中导出包含静态方法的类

如何在Node.js中导出包含静态方法的类

我们知道,JS中的 static 关键字用于定义类的静态属性和方法。静态方法或属性不能从类的实例中调用,而是从类本身调用。

class Car {
    static run() { console.log('Car running...') }
}

// Error: (intermediate value).run
// is not a function
( new Car() ).run()

// Car running...
Car.run()

require() 和 module.exports 之间的关系: 默认情况下,

module.exports 指向一个对象。module.exports 的值可以是文字、函数、对象等。当我们导出一个模块时,意味着我们导出了 module.exports 的值。

require() 的任务是从调用它的模块中导入 module.exports 的值。moduleB 中 require() 函数的返回值等于 moduleA 中的 module.exports 对象。所以,关系如下所示。

require() == module.exports

使用静态方法导出类: 如果你想从 NodeJS 模块中导出一个带有静态方法的类,那么这个思路与导出一个普通类一样简单。下面我们来看一些示例。

步骤1: 使用下面的命令创建一个 NodeJS 项目。

mkdir Project **** && cd Project
npm init -y

步骤2: 在项目的根目录中创建两个JS文件,并将它们命名为 App.jsmyModule.js

项目结构: 它将如下所示。

如何在Node.js中导出包含静态方法的类

步骤3: 编辑 myModule.js,使用以下代码。

myModule.js

// myModule module 
class Car{ 
    static run() { console.log('Car running...') } 
} 
  
// Export this module 
module.exports = Car

我们已经创建了一个名为 Car 的类,在myModule.js中定义了一个静态方法 run() 并通过将类本身赋值给module.exports进行导出。

步骤4: 接下来,用以下代码编辑你的App.js。

App.js

// Import myModule 
const mercedes = require('./myModule') 
  
// Printing data 
console.log(mercedes) 
  
// Invoke static function 
mercedes.run()

在 App.js 文件中,我们使用 require() 函数导入 myModule,并将返回值赋给变量名 mercedes。所以,类 Car 直接赋值给 mercedes,现在我们可以从 mercedes 中调用静态方法 run(),来自 App.js 模块。

步骤5: 使用以下命令运行服务器。

node App.js

输出:

[Function: Car]
Car running...

如果你想将一个模块导出为一个对象形式,那么请将类 Car 添加为 module.exports 的一个属性,就像下面展示的那样:

myModule.js

// myModule module 
class Car{ 
    static run() { console.log('Car running...') } 
} 
  
// Export this module 
// add class Car as a property  
// of module.exports 
module.exports = { Car }

App.js

// Importing our module 
const mercedes = require('./myModule').Car 
  
// Executing run function 
mercedes.run()

使用以下命令运行服务器。

node App.js

输出:

Car running...

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程