Node.js 中的导入和导出
导入和导出文件是任何编程语言的重要部分。导入函数或模块增强了代码的可重用性。当应用程序变大时,维护一个包含所有功能和逻辑的文件变得很困难。它也阻碍了调试的过程。因此,最好为特定功能创建单独的文件,然后根据需要导入它们。
Node.js 还允许导入和导出函数和模块。一个模块中的函数可以在其他模块中导入和调用,从而节省了将函数定义复制到其他文件中的工作量。该模块可以单独编辑或调试,从而更容易添加或删除功能。
包含其他文件中的函数的步骤:
- 创建模块:在 Node.js 中创建的模块是 JavaScript 文件。每次创建扩展名为.js的新文件时,它都会成为一个模块。
- 导出模块:文件名:func.js
function add(x, y) { return x + y; } function subtract(x, y) { return x - y; } // Adding the code below to allow importing // the functions in other files module.exports = { add }
- 导入模块:我们需要导入模块以在另一个文件中使用导入模块中定义的功能。 require() 返回的结果存储在一个变量中,该变量用于使用点表示法调用函数。
文件名:main.js// Importing the func.js module // The ./ says that the func module // is in the same directory as // the main.js file const f = require('./func'); // Require returns an object with add() // and stores it in the f variable // which is used to invoke the required const result = f.add(10, 5); console.log('The result is:', result);
输出:
The result is: 15
从本地文件导入多个函数:文件名:func.js
function add(x, y) {
return x + y;
}
function subtract(x, y) {
return x - y;
}
module.exports = { add, subtract};
文件名:main.js
const f = require('./func');
console.log(f.add(4, 4));
console.log(f.subtract(8, 4));
我们还可以使用解构语法来解包 require()函数返回的对象的属性,并将它们存储在相应的变量中。
const { add, subtract} = require('./func');
console.log(add(4, 4));
console.log(subtract(8, 4));
输出:
8
4
导出模块的其他方法
- 在 module.exports 对象中定义函数。
module.exports = { add: function (x, y) { return x + y; }, subtract: function (x, y) { return x - y; }, };
- 将每个函数独立定义为 module.exports 的方法
module.exports.add = function (x, y) { return x + y; }; module.exports.subtract = function (x, y) { return x - y; };
从目录导入模块:在目录中导入 lib.js 文件,方法是在 lib.js 前加上目录名称。
const lib = require('./mod/lib');
console.log(lib.add(6, 4));
console.log(lib.subtract(12, 4));
Node.js 中有三种类型的模块
- 从本地模块导入:这些模块由用户创建,可以导入为:
const var = require('./filename.js'); // OR const var = require('./path/filename.js');
- 从核心模块导入:这些模块内置在 Node.js 中,可以导入为:
const var = require('fs');
- 从第三方模块导入:这些模块使用包管理器(例如 npm)安装。第三方模块的示例有 express、 mongoose、nodemon 等。这些模块被导入为:
const express = require('express');
因此,上面是几个从 Node.js 中的不同文件导入和导出函数的示例。