您的位置:首页 > Web前端 > Node.js

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

2018-10-24 21:47 991 查看

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指向同一个对象。

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: