nodejs-1

1. nodeJs常用场景

  • 被用于为前端提供数据的后端
  • 腾讯视频采用的nodejs作为中间层(搜索引擎的优化、首屏的优化)
  • 构建工作流

2. 什么是nodeJs?

  • nodeJs是基于chromeV8引擎的javascript运行环境
  • nodejs使用了一个事件驱动、非组塞式I/O模型,使其轻量又高效

3. nodejs和js在chrome写有那些不一样?

  • nodejs没有浏览器Api,document、window等
  • 加了许多nodeJS的API。
  • 加了文件等。
  • 在chrome写js控制浏览器
  • 在nodejs写控制计算机

4. commonJS规范

  • script标签的缺点就是脚本变多时,需要手动管理加载顺序
  • 不同脚本之间逻辑调用,需要通过全局变量的方式
  • 引用模块用require(),导出变量和函数用exports, 例如exports.hello = “world”
  • mdoule.exports 会覆盖exports的数据
  • 核心:1.隐藏模块内部实现 2. 暴露供外部使用的接口
  • commonJS 使用 exports 导出模块, require 导入模块
  • 如果是导出整个文件,可以看作文件用moudle.exports
  • 模块内的所有代码均为 隐藏代码,包括 全局变量、全局函数,这些全局的内容 均不应该对全局变量造成污染。
  • 如果一个模块需要暴露一些API给外部使用,需要通过exports 导出,exports 是一个空对象,你可以为该对象 添加任何需要导出的内容。
  • 如果一个模块需要导入其他模块,通过require 实现,require 是一个函数,传入模块的路径即可返回该模块导出的整个内容。

5. node对commonJS的实现

  1. 为了保证高效的执行,进加载必要的模块。nodejs 执行到require 函数时才会加载并执行。
  2. 为了隐藏模块中的代码,nodejs 执行模块时,会将模块中的所有放到一个函数中执行,以保证不污染全局变量。
  3. 为了保证顺利的导出模块内容,nodejs 做了以下处理
  4. 在模块开始执行前,初始化一个值 module.exports = {}
  5. module.exports是模块导出
  6. 为了方便开发者便捷的导出,nodejs 在初始化 完成module.exports后,有声明了一个变量exports = module.exports
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值