js学习记录之(一)require 与module.exports

本文介绍了JavaScript中的模块化编程概念,包括如何使用require导入模块、如何通过module.exports导出模块,并解释了require的工作原理及其特性。

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

1. js 里面的代码可以放在不同的文件里,称为代码模块

2.当一个模块需要引用其他模块中代码的时候,就用require导入相应的模块(使用代码块),用module.exports指向一个代码块(制作代码块)

3.  文件1.js

    var codeUtils ={
	getSum: function(num1,num2){
		var res = num1+num2;
		return res;
	},
};
console.log("制作代码块");
//使用module.exports指向相应的对象,做成代码块
module.exports = codeUtils;


文件2.js


//使用文件1中的代码块
var codeUtils  = require("./codeUtils");
//使用代码块中的函数
var num = codeUtils.getSum(1,2);
console.log(num);

4.也可以指向一个函数,那么直接当作函数使用即可,总之,你module.exports了什么,require时就是什么

5.关于require:

   a. 如果是第一次调用某一模块,需要加载、然后执行此脚本,不是第一次,就直接返回module.exports所指的对象

   b. 每次require 返回的就是module.exports

   c. module.exports 没有指向一个对象,那就是null


   


 

在Node.js中,模块化编程是核心特性之,正确使用requiremodule.exports是实现模块间方法调用的关键。首先,你需要了解Node.js的模块系统,它是基于CommonJS规范的,每个文件都可以被视为个独立的模块。在模块内部,你可以定义些内部方法供模块内部使用,而通过使用exportsmodule.exports对象,你可以将某些方法或对象导出为外部接口,使其可供其他模块调用。 参考资源链接:[Node.js入门教程:内部外部方法调用解析](https://wenku.csdn.net/doc/59hrk1fxm2?spm=1055.2569.3001.10343) 例如,假设你有两个文件,moduleA.jsmoduleB.js。在moduleA.js中,你定义了个函数add,然后通过module.exports = { add }将这个函数导出。在moduleB.js中,你使用require('./moduleA')来引入moduleA.js,并调用其中的add函数。 这里需要特别注意的是exportsmodule.exports的区别。exports个变量,它默认指向个空对象{},你可以通过exports.add = function() {}来添加属性或方法。而module.exports在初始化时指向exports,但可以被重新赋值,这样可以导出个非对象的值,如module.exports = function() {}。在实际编程中,如果需要导出个对象或函数,推荐直接使用module.exports,以避免复杂的引用问题。 具体到编程实践,可以参考这份资源:《Node.js入门教程:内部外部方法调用解析》。该教程通过具体的示例文件fun.js、fun2.js和fun3.js,详细讲解了如何在Node.js代码中实现模块间的交互和方法调用,能够帮助初学者快速上手并掌握相关知识。 参考资源链接:[Node.js入门教程:内部外部方法调用解析](https://wenku.csdn.net/doc/59hrk1fxm2?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值