NodeJS自定义包和模块的导入(require)、导出(exports)

本文探讨了如何在Node.js中使用package.json、index.js和calc.js实现模块的暴露与导入,展示了三种不同的导入导出策略,并揭示了可能存在的冲突。重点讲解了自定义包的使用和不同导入方式的实践应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件目录:
在这里插入图片描述
package.json(npm初始化生成的文件)

{
  "name": "customizepackage",
  "version": "1.0.0",
  "description": "自定义包",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "zlm",
  "license": "ISC"
}

index.js

const {add,sub,mul,div}=require('./calc.js');

module.exports={
	add:add,
	sub:sub,
	mul:mul,
	div:div
}

calc.js

function add(n1,n2){
	return n1+n2;
}

function sub(n1,n2){
	return n1-n2;
}

function mul(n1,n2){
	return n1*n2;
}

function div(n1,n2){
	return n1/n2;
}

module.exports={
	add:add,
	sub:sub,
	mul:mul,
	div:div
}

模块暴露(exports).js

// 第一种导出方式
exports.c = '我是暴露出来的属性';
exports.f1=()=>{
	console.log('我是暴露出来的方法');
}

// 第二种导出方式
function add(n1,n2){
	return n1+n2;
}

module.exports={
	add:add
}

模块引用(require).js

// 第一种导入方式
const g1=require('./模块暴露(exports).js');
console.log(g1.c);
g1.f1();

// 第二种导入方式(解析赋值)
const {add}=require('./模块暴露(exports).js');
console.log(add(1,5));

// 第三种导入方式(导入自定义包)
const customizePackage=require('../customizePackage');
console.log(customizePackage.add(10,13));
console.log(customizePackage.sub(20,7));
console.log(customizePackage.mul(3,3));
console.log(customizePackage.div(100,4));

模块引入.js中的三种导入方式有冲突,所以一个一个来执行,第一种导入导出方式:
在这里插入图片描述

第二种导入导出方式:
在这里插入图片描述
第三种自定义包导入导出方式:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值