nodejs---基础一Node.js的基本特点,和关于module.exports和exports

本文深入探讨了Node.js作为基于Chrome V8引擎的JavaScript运行环境,如何通过事件驱动和异步I/O解决高并发问题。介绍了Node.js版本号的含义及其递增规律,并对比了浏览器环境下的全局对象差异。此外,还详细讲解了CommonJS规范下的模块化设计原则及其实现方式。

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

nodejs—主要解决高并发问题
Node.js

  1. 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
  2. 适用于开发高并发,没有复杂业务逻辑的应用

解决问题的关键:

  1. 事件驱动
  2. 异步I/O(非阻塞I/O)
  3. 单线程(缺点:一旦阻塞,整个流程都会被阻塞)

淘宝前后端分离实践

关于nodejs的版本号

  1. 版本号通常分为3个部分:主版本号,次版本号,修订号
  2. 版本号递增的规律:
    (1)主版本号:当做了不兼容API 修改(新增的功能很多 新增的功能不一定提供向后兼容即原来写的代码在新版本下不一定可用)
    (2)次版本号:向下兼容功能的新增
    (1)修订号:向下兼容问题的解决(原来写的代码还可以用)
    3.通常此版本号为偶数的时候为稳定版,奇数的时候为非稳定版

体验node,直接在命令行输入代码,体验nodejs

node

在nodejs中没有window对象,有全局对象:global对象
原来浏览器中的bom,dom对象在nodejs环境下均不可用
window对象是bom对象,document也不可用
计时器可用:setTimeout 和setTimeinterval依然可用,只是此时计时器是全局对象global的方法,不再是浏览器环境下window的方法。

在这里插入图片描述

在使用node编辑单个文件的时候,当js文件内容有所修改,需要重新启动服务器,响应的内容才会更新
用node执行某个js文件

node xxx.js

nodejs遵循的是commonJs规范
commonJs的出发点:弥补javascript语言自身的一些不足:

  1. 无模块化
  2. 无包管理机制
  3. 无标准接口
  4. 标准库太少
    commonJs模块:(引入模块用require(),导出用module.exports或者exports,这里require依赖的内容是module.exports所导出的内容)
  5. 模块定义,通过module.exports或者exports进行定义
  6. 一个文件就是一个模块,拥有独立的作用域
  7. 通过module.exports或者exports将模块中的内容暴露出来,供外部使用。在每个模块中,module对象就代表模块本身,exports是module对象的一个属性,它向外提供接口module.exports和exports的区别应该注意
    exports相当于是module.esports的引用
    当module.exports与exports导出的内容均为空的时候,相等成立,
    但是只要有导出的时候,无论导出的内容是否相等,只要进行的是分别的赋值,module.exports和exports,都不再相等

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.通常为避免在导出后,module.exports与exports导出的内容不一致,所以常常使用这样的代码进行导出

exports = module.exports = {
	//导出的内容
}

通过这样的代码进行模块的导出后,exports与module.exports指向同一个对象。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值