node.js-模块化介绍

本文探讨了Node.js的单线程特性及其分布式应用,详细介绍了ES5后的模块化开发思想,包括require()函数的使用及变量导出方法。同时,讲解了核心模块与文件模块的区别,以及如何在IDE中配置和运行JS文件。最后,概述了npm的基本命令和包的搜索路径。

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

1.node是单线程的
但是可以做一个分布式,在idea/webstorm中,我们可以引入node的插件,
然后idea会默认配置node服务器的可执行程序的位置,然后我们可以通过该插件直接在idea中运行js文件。

2.在es5之后,前端有了模块化开发的思想
一个js文件就是一个模块,通过 require()函数来引入外部模块我们使用require引入
一个模块之后,对于我们自己定义的模块,当前目录必须加上 ./ 不然运行会抛出异常。
假如在module2.js的内容如下
var a=1;var b=2;
module1.js的内容如下
var md=require('./module2.js');
如果执行console.log(md.a);会显示未定义,这是因为node中,每一个文件中的js代码都是独立运行
通过该方式引入另外一个模块,引入的模块相当于一个自调用函数,所以他找不到a变量。即闭包

但是我们可以通过exports来导出该变量
let a=1;
exports.a=a;

模块分为两大类
    1:核心模块,由node引擎提供的模块,npm中的模块
    2:文件模块,由用户自己创建的
3.在node中,我们没有window这个全局变量,但是有global

4.导出module.exports与exports的区别
在我们导出一个对象时
let a=1;
exports.a=a;
module.exports={
    name:'猪猪侠',
    age:5,
    getName:function() {
        console.log(this.name);
    }
}
在另外一个对象用引用调用,发现a为undefined ,把其中的module.exports换成exports
发现导入对象未定义,a变量定义

原因: 栈内存和堆内存的概念
exports指向的是module.exports对象,在其他模块引入的对象为module.exports对象
所以exports={}的方式导出的对象在堆内存中并不是同一个对象
exports的方式导出,只能以exports.的方式

5.npm命令
npm -v 查看npm版本
npm init 帮助我们创建package.json文件
npm install/i 包名 下载包
npm remove/r 包名 删除包
npm install 包名 --save 安装包并添加依赖搭配package.json
npm install 下载当前package.json中所有的依赖中的包

6.搜索包
npm下载的命令都在node_modules中,通过require引用包的时候,
会在当前目录中寻找node_modules的文件夹下的包,如果不存在则去
上一级的node_modules包中寻找,一直到磁盘的根目录。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值